从对象集合中找到最大数量

时间:2019-10-17 15:42:04

标签: java collections

具有ID,级别和角色为属性的集合对象,我想从集合中找到最大级别

例如,在下面的Assignment表中,最大级别为13。我如何从SET

中找到最大级别

分配表:

Id      Level   role
259256  1       SYSTM_ADMN  
259257  9       APPRVR_LVL_4
259258  8       APPRVR_LVL_3
259259  10      APPRVR_LVL_5
259260  6       APPRVR_LVL_1
259261  13      INTRNL_RD_ONLY
259268  8       SYSTM_ADMN  
259269  10      SYSTM_ADMN  
259270  9       SYSTM_ADMN  

以下代码已使用Java8编写。但是我想在Java6中运行代码。

Assignment assignment =  Collections.max(assignmentset, Comparator.comparing(s -> s.getLevel()));

2 个答案:

答案 0 :(得分:1)

流运算符在Java 6中不起作用。它们出现在Java 8中。因此,您只需为获取最大值的每个元素进行循环。那是使这项工作唯一的。

答案 1 :(得分:1)

您可以仅使用一个循环就可以做到这一点:

public Assignment getMaxAssignmentFromCollection(Collection collection) {
    int max = Integer.MIN_VALUE;
    Assignment maxAssignment = null;
    for(Assignment element: collection) {
        if(element.getLevel() > max) {
            max = element.getLevel();
            maxAssignment = element;
        }
    }
    return maxAssignment;
}

然后使用它:

Assignment maxAssignment = getMaxAssignmentFromCollection(assignmentSet);