Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
要在对象之间比较并返回该对象的Java流?_Java_Java 8_Java Stream_Comparator - Fatal编程技术网

要在对象之间比较并返回该对象的Java流?

要在对象之间比较并返回该对象的Java流?,java,java-8,java-stream,comparator,Java,Java 8,Java Stream,Comparator,我有一个类对象的ArrayList,如下所示: ArrayList<Score> scoreboard = new ArrayList<>(); 如何使用Java streams来比较该评分对象中的点,并返回具有最高/最低值的对象 我尝试过类似的方法,但没有成功: scoreboard .stream() .max(Comparator.comparing(Score::getPoints) .get() .forEach(System:

我有一个类对象的
ArrayList
,如下所示:

ArrayList<Score> scoreboard = new ArrayList<>();
如何使用Java streams来比较该
评分对象中的
,并返回具有最高/最低值的对象

我尝试过类似的方法,但没有成功:

scoreboard
    .stream()
    .max(Comparator.comparing(Score::getPoints)
    .get()
    .forEach(System::println);

仔细看看您尝试过的内容:

scoreboard.stream().max(Comparator.comparing(Score::getPoints).get().forEach(System::println);
在这里,您试图创建一个
比较器

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);
Optional=scoreboard.stream().max(…);
opt.ifPresent(System.out::println);
定义不工作。
Optional<Score> opt = scoreboard.stream().max(...);
opt.ifPresent(System.out::println);