如何对列表进行排序而不对其进行突变

时间:2018-08-24 21:04:22

标签: java sorting

我想对Java中的List项进行排序,并让排序返回一个新的排序后的List而不改变原始的List。有一个常用的库可以做到这一点吗?

2 个答案:

答案 0 :(得分:2)

如果您使用的是Java 8或更高版本,则可以使用Stream API。有关详细信息,请参见Sorting a list with stream.sorted() in Java

例如:

List<String> sortedList = myList.stream().sorted().collect(Collectors.toList());

答案 1 :(得分:0)

这会将(通过引用)原始列表中的元素复制到新列表中。像更改一个列表的顺序那样进行更改不会影响其他列表。

List<String> original = new ArrayList<String>();
List<String> new = new ArrayList(original);

但是请注意,如果您修改列表中的对象,由于对象是通过引用复制的,因此更改将反映在两个列表中。