subList()方法傳回的是原組數的片段,
二者共用相同的位址
,是以,當你操作子序列數組對象時,同樣會修改原始數組的值。我們看個例子
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ArraylistSort {
public static void main(String[] args) {
List<Integer> list = new ArrayList();
list.add(2);
list.add(1);
list.add(5);
list.add(3);
list.add(9);
list.add(10);
list.add(7);
List<Integer> sublist = list.subList(2, 4);
Collections.sort(sublist);
for (int v : sublist) {
System.out.print(v + ",");
}
System.out.println();
for (int v : list) {
System.out.print(v + ",");
}
}
}
執行結果
3,5,
2,1,3,5,9,10,7,
我們往數組依次插入2,1,5,3,9,10,7,然後對子序列進行排序,再列印原始數組,發現
3和5的順序也被改變
了。