繁体   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