有没有一种简单的方法可以交换列表中的2个子列表。
例:

[0 1 2 3 4 5 6 7 8 9 10 11] --> [0 1 8 9 10 4 5 6 7 2 3 11]
  --> Sublist1= [2 3]
  --> Sublist2= [8 9 10]

最佳答案

如果您可以使用索引,可以通过使用subList函数多个文件并创建一个新的列表对象来完成此操作,如下所示...

List<Integer> newList = new ArrayList<Integer>(myList.subList(0, 4));
newList.addAll(myList.subList(7, 9));
newList.addAll(myList.subList(4, 7));
newList.addAll(myList.subList(9, 12));


这里我们从索引4到6交换索引7到8

如果只想使用元素,则首先使用元素查找subList的索引,然后使用上述过程。

不要与subList函数的endIndex混淆...
fromIndex-子列表的低端点(包括)
toIndex-子列表的高端端点(不包括)
因此,如果您在subList函数中提到7,9,则表示从索引7到索引9以下的所有元素。

10-08 19:20