ArrayList.subList方法使用總結
示例
List<String> list=new ArrayList<>();
list.add("d");
list.add("33");
list.add("44");
list.add("55");
list.add("66");
List<String> list2 = list.subList(0, 2);
System.out.println(list.size());//5
System.out.println(list2.size());//2
總結
- 使用sublist()返回的只是原list對象的一個視圖,因此Sublist內部類和ArrayList的內部保存數據的地址是一樣得;即它們在內存中是同一個List(集合),只是parentOffset ,size等參數不同
- 對SubList子列表的所有操作都會最終反映到原列表上
- ArrayList的subList結果不可強轉成ArrayList,否則會拋出ClassCastException異常。
- 如果達到的效果要對子集進行操作,原始list不改變。建議以下方式:
List<Object> tempList = new ArrayList<Object>(list.subList(2, lists.size()));