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()));