ArrayList.subList方法使用总结

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()));
原文地址:https://www.cnblogs.com/frankltf/p/10369879.html