簡體   English   中英

Java流在對象之間進行比較並返回該對象?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM