我有兴趣根据对象中的日期属性对对象列表进行排序。我可以使用列表排序方法。
list.sort( (a, b) -> a.getDate().compareTo(b.getDate()) );
或者我可以使用流排序方法
List<E> l = list.stream()
.sorted( (a, b) -> a.getDate().compareTo(b.getDate()))
.collect(Collectors.toList());
在上述两个选项中,我们应该使用哪个,为什么?
我知道前一个会更新我的原始列表,后一个不会更新原始列表,而是给我一个全新的列表对象。
所以,我不在乎我的原始列表是否更新。那么哪一个是不错的选择,为什么?
最佳答案
如果您只需要对List
进行排序,并且不需要任何其他流操作(例如过滤、映射等...),则没有必要添加创建的开销一个Stream
,然后创建一个新的List
。仅对原始 List
进行排序会更有效。
关于java - 列表接口(interface)排序方法和流接口(interface)排序方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55991141/