使用lambda java查找max



这是我的代码:

public static void Max(List<List<String>> data) {
data.forEach(d -> String max = Collections.max(Arrays.asList(d.getMax(5))));
}

我得到的结果:

70
75
76

我怎样才能只得到最大数字?

您可以使用Comparator.comparing来比较第二个索引,并在比较时解析为Integer,然后从列表中获取第二个index元素。

String res = Collections.max(data, 
Comparator.comparing(e -> Integer.parseInt(e.get(2)))).get(2);

一种更简单的方法:

int max = Integer.MIN_VALUE;
for (int i = 0; i < data.size(); i++) {
for (int j = 0; j < data.get(i).size(); j++) {
max = Integer.max(Integer.parseInt(data.get(i).get(j)), max);
}
}
System.out.println(max);

通过这种方式,我们梳理每个列表的每个成员,并通过调用max()来获得最大值,然后将其显示在控制台中。

最新更新