2016-11-05 19 views
0

我想在rolePriority中找到最小號碼。我如何在for循環中獲得最小數字。如何在循環中找到最小數量?

UserRole.java

public class UserRole implements Serializable{ 
    private Integer id; 
    private User user; 
    private Role role; 

RoleAction.java

public class RoleAction implements Serializable{ 
private Integer id; 
    private Role role; 
    private Action action; 

} 
for (UserRole userRole : userRoles) { 
      dbRoles.add(userRole.getRole().getRoleName()); 

      int rolePriority=userRole.getRole().getPriority(); 



      for (RoleAction ra: userRole.getRole().getRoleActions()) { 

       System.out.println("#########"+ra.getAction().getName()); 
       System.out.println("@@@@@@@@@"+ra.getAction().getId()); 

       map.put(ra.getAction().getName(), ra.getAction().getId()); 

      } 

     } 
+0

post'UserRole','RoleAction'和格式代碼 –

+2

*「我怎樣才能在for循環中獲得最小數字。」*好吧,你會發生什麼?你覺得你可能會怎麼做?提示:它將涉及一個變量和'<'運算符。 –

回答

1

如果你想找到當中的任何用戶角色的最低角色的優先級,然後你可以試試Ë以下:

int minPriority = -1; 
for (UserRole userRole : userRoles) { 
    dbRoles.add(userRole.getRole().getRoleName()); 

    int rolePriority = userRole.getRole().getPriority(); 
    if (rolePriority < minPriority || minPriority == -1) { 
     minPriority = rolePriority; 
    } 
    for (RoleAction ra: userRole.getRole().getRoleActions()) { 
     System.out.println("#########"+ra.getAction().getName()); 
     System.out.println("@@@@@@@@@"+ra.getAction().getId()); 
     map.put(ra.getAction().getName(), ra.getAction().getId()); 
    } 
} 

說明:

可變minPriority被初始化爲-1作爲佔位符值。在循環的每次迭代期間,將當前優先級(rolePriority)與迄今爲止所見的最小值(minPriority)進行比較,並且此最小值可能會更新。此外,在循環的第一次迭代期間,minPriority被分配給rolePrioirity。如果您的優先級可以取值-1,那麼您應該初始化minPriority某個從未實際使用的值。

+0

我想保留會議中的最小值,我可以在哪裏保存,for循環或外側for循環。如果我留在外面的循環,我會得到-1。如果我保持在循環內,則每個值都將設置爲會話 – mike

+0

然後,只需獲取會話映射並將值存儲在那裏。順便說一句,關於這個會議的這個問題似乎與你原來的問題沒有任何關係。 –

相關問題