有没有一种简单的方法可以交换列表中的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以下的所有元素。