![](/img/trans.png)
[英]Java streams compare property is equal between two lists and return true or false
[英]Java streams to compare between objects and return that object?
我有一个类对象的ArrayList
,如下所示:
ArrayList<Score> scoreboard = new ArrayList<>();
Score
类具有一个字段points
:
class Score {
private int points;
//constructor and methods
}
我将如何去使用Java流的比较points
每本的Score
对象,并具有最高/最低值返回的对象?
我尝试了类似的方法,但是没有用:
scoreboard
.stream()
.max(Comparator.comparing(Score::getPoints)
.get()
.forEach(System::println);
仔细看看您尝试过的内容:
scoreboard.stream().max(Comparator.comparing(Score::getPoints).get().forEach(System::println);
在这里,您尝试创建一个Comparator
:
Comparator.comparing(Score::getPoints).get().forEach(System::println)
并且您还没有平衡括号; 并且您使用的是不存在的方法System::println
。
将括号放在正确的位置:
Score maxScore = scoreboard.stream().max(Comparator.comparingInt(Score::getPoints)).get();
// Extra ^
然后打印:
System.out.println(maxScore);
或者,如果您不确定流是否为空:
Optional<Score> opt = scoreboard.stream().max(...);
opt.ifPresent(System.out::println);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.