Java中在两个ArrayList之间交换节的最快方法

Java中在两个ArrayList之间交换节的最快方法,java,collections,arraylist,Java,Collections,Arraylist,我有两个数组列表 清单1的内容是: 1,2,3,4,5,6,7 清单2的内容是: 7,6,5,4,3,2,1 现在我想交换两个ArrayList的粗体部分。我将使用循环 public static <T> void swap(List<T> list1, List<T> list2, int from, int to) { for(int i = from; i < to; i++) list2.set(i, lis

我有两个数组列表

清单1的内容是:

1,2,3,4,5,6,7

清单2的内容是:

7,6,5,4,3,2,1

现在我想交换两个ArrayList的粗体部分。

我将使用循环

 public static <T> void swap(List<T> list1, List<T> list2, int from, int to) {
      for(int i = from; i < to; i++) 
           list2.set(i, list1.set(i, list2.get(i));
 }     
publicstaticvoidswap(列表列表1、列表2、int-from、int-to){
for(int i=from;i
我会使用循环

 public static <T> void swap(List<T> list1, List<T> list2, int from, int to) {
      for(int i = from; i < to; i++) 
           list2.set(i, list1.set(i, list2.get(i));
 }     
publicstaticvoidswap(列表列表1、列表2、int-from、int-to){
for(int i=from;i
如果内容不变,则可以直接使用

 Collections.reverse(list1.subList(2,5));
 Collections.reverse(list2.subList(2,5));

如果内容不变,那么您可以直接使用

 Collections.reverse(list1.subList(2,5));
 Collections.reverse(list2.subList(2,5));

我不小心按下了提交按钮。现在我通过创建两个新的ArrayList并使用旧的列表作为构造函数来交换这些部分。然后我使用For循环并执行newlist1.set(I,list2.get(I))。我很确定这是最慢的交换方式。我能做什么?我不小心按下了提交按钮。现在我通过创建两个新的ArrayList并使用旧的列表作为构造函数来交换这些部分。然后我使用For循环并执行newlist1.set(I,list2.get(I))。我很确定这是最慢的交换方式。我能做些什么并准确回答:)设置/设置/获取技巧有点模糊,但希望可以理解。是的,它绝对可以理解!简洁准确的回答:)设置/设置/获取技巧有点模糊,但希望可以理解。是的,它绝对可以理解!不错的技巧,这不会交换它们,但问题中的示例的结果是等效的:)@Katona是的,它不会交换它们:)不错的技巧,这不会交换它们,但问题中的示例的结果是等效的:)@Katona是的,它不会交换它们:)