出于好奇,如果在Java8中使用比较器(Comparator)的Lambda表达式风格是否比常规排序有任何优势?
按id排序的一种方法是:
List sortedAcs = ac
.stream()
.sorted((a, b) -> Long.compare(a.getId(), b.getId())) //sorted by id here
.collect(Collectors.toList());
其他方法可以使用Java 8的方式:
List sortedAcs = ac
.stream()
.sorted(Comparator.comparingLong(AC::getId)) //sorted by id here
.collect(Collectors.toList());
后一种方法(
Java-8 方法引用
)相对于前一种方法是否有性能优势?请帮忙!!!
(a, b) -> Long.compare(a.getId(), a.getId())
,你必须看两次才能发现错误。如果您想让该特定代码片段运行得更快,可以使用List<AC> sortedAcs=new ArrayList<>(ac); sortedAcs.sort(Comparator.comparingLong(AC::getId));
进行原地排序。 - Holger