我想在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());
}
}
如果您想在所有用户角色中找到最小的角色优先级,那么您可以尝试以下操作:
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
初始化为一些从未实际使用过的值。