哪种方式最好,看速度和舒适度?
names.sort( (a,b) -> a.getName().length() - b.getName().length() );
Collections.sort(names, Comparator.comparing( s -> Celebrity.getName().length() ))
BiFunction<Celebrity,Celebrity,Integer> bifunc = (a,b) -> Integer.compare(a.getName().length(), b.getName().length());
Collections.sort( names, bifunc::apply );
答案 0 :(得分:10)
它是一样的。看看Collections.sort
方法:
public static <T> void sort(List<T> list, Comparator<? super T> c) {
list.sort(c);
}
所有3种方法都按相同的算法排序。
您应该尽可能多地编写代码。除非真的需要,否则不要过早地进行微观优化。
我会用这一行:
names.sort(Comparator.comparingInt(celebrity -> celebrity.getName().length()));