[英]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.