【发布时间】:2018-07-27 15:57:24
【问题描述】:
我有一个玩家列表,想要获得最低评分的玩家。我可以这样做:
Player player1 = Collections.min(players,Comparator.comparing(Player::getRating));
或者我可以这样做:
Player player2 = players.stream().min(Comparator.comparing(Player::getRating)).get();
在性能方面或其他方面哪个更好?
【问题讨论】:
-
做一个基准测试看看。
-
没有魔法。两种方法都遍历所有元素并进行比较。
-
@Holger 如果流理论上可以注册它已经按某个属性排序,如
TreeSet<>(Comparator.comparing)等,只是理论上 -
@Aomine 你删除了
é?无论如何,我认为理论上如果蒸汽已排序并且这是在流管道上注册的标志,您可以简单地返回第一个或最后一个条目而不遍历源 -
我考虑了一段时间,最终决定简化一些事情并将其保留为
e而不是é。
标签: java collections java-8 java-stream