`
chenjie1121
  • 浏览: 13079 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA中使用list.subList()的注意事项

    博客分类:
  • JAVA
 
阅读更多

java.util.List中的subList方法,是返回list的一部分的视图。

如果做了非结构性修改,双方互相影响。

 

 

public static void main(String[] args){
        List<Integer> list = new ArrayList<Integer>();
        list.add(2);
        list.add(1);
        list.add(5);
        list.add(4);
        List<Integer> subList = list.subList(0, 2);
        subList.add(11);
        list.add(3);
        System.out.println(list.size());
        System.out.println(subList.size());
}

 执行上面的代码,就会报错;

 

 

6
Exception in thread "main" java.util.ConcurrentModificationException
	at java.util.SubList.checkForComodification(Unknown Source)
	at java.util.SubList.size(Unknown Source)
	at com.sitechasia.ebiz.news.web.NewsCategoryAction.main(NewsCategoryAction.java:228)

 将list.add(3);的操作注释,即可正常运行;但是需要注意的是:对subList操作的同时【subList.add(11);】,list的size也增加了1;

 

5
3
 

 

 

 另外,删除list的某一段值,可以这样;

 

list.subList(0, 2).clear();

 

分享到:
评论

相关推荐

    Java 实例 - List 截取源代码+详细指导教程.zip

    4. **注意事项**:截取的子列表与原列表共享相同的底层数组或链表,因此修改子列表会影响原始列表。例如,如果在子列表中添加元素,原列表的大小也会增加。 5. **遍历截取后的List**:可以使用增强for循环或迭代器...

    Java编程中常见的坑

    `subList`的使用注意事项 `List.subList()`方法用于获取列表的一个视图。需要注意的是,这个视图与原始列表是关联的,任何对视图的修改都会影响到原始列表,反之亦然。因此,在处理`subList`时需要格外小心,尤其...

    javaList的定义和方法

    **使用场景和注意事项:** - 当需要保持元素插入顺序,并且可能需要根据索引访问或操作元素时,使用`List`接口及其实现类。 - `List`接口中的方法`add`, `remove`, `set`等操作可能会影响迭代器,因此在遍历列表时应...

    动态分页算法java代码

    在Java中,我们可以使用集合类(如List、ArrayList等)或数据库查询(如JDBC、MyBatis等)来实现动态分页。以下是一个简单的Java代码示例,基于List实现动态分页: ```java public class Pagination { private int...

    2019阿里最新Java编程规范v1.5.pdf.zip

    同时,提倡在性能敏感的地方使用`StringBuilder`而非`String`进行字符串拼接,使用`List.subList()`来处理大数据集合,以减少内存占用。 七、日志管理 日志是排查问题的重要工具。规范推荐使用成熟的日志框架,如...

    阿里开发规范(集合与并发处理)

    subList 场景中的注意事项 **强制规定**:在 `subList` 场景中,需要注意对原始集合元素的增删操作,这些操作都可能导致子列表的遍历、增删产生 `ConcurrentModificationException` 异常。 **说明**:在使用 `...

    javaweb两中分页方法

    三、优化与注意事项 1. 计算总页数:当数据量较大时,直接计算总页数可能会导致性能问题。可以考虑只保存最近几页的页码,或者在用户滚动到底部时动态加载更多数据(懒加载)。 2. 分页缓存:对于频繁访问且不经常...

    一口气带你踩完五个 List 的大坑,真的是处处坑啊!

    List 转换注意事项 在处理 List 时,转换操作是常见的需求,如从数组转换为 List。如前所述,直接使用 `Arrays#asList` 创建的 List 是不支持修改操作的。因此,如果需要一个可变的 List,应使用 `new ArrayList...

    java 的Collection接口实例详解

    7. **迭代器注意事项**: 当使用迭代器时,推荐只使用迭代器提供的方法(如`next`、`hasNext`、`remove`等)来操作集合,以避免并发修改异常。如果需要执行更复杂的操作,如添加元素或修改元素,应使用`...

    集合(Collection)文档

    **注意事项**: - 当重写`hashCode()`方法时,应该尽量确保每个元素的哈希值具有较高的唯一性。通常情况下,可以通过组合元素的各个属性的哈希值来实现这一点。 - 示例代码展示如何为自定义类型重写`hashCode()`方法...

    jsp servlet javaBean后台分页实例代码解析

    后台分页的基本思想是:先从数据库获取所有需要分页的数据,将其存储在一个List集合中,然后根据用户请求的页码,利用List的`subList()`方法对集合进行切割,只将当前页所需的数据传递给前端展示。 2. **项目文件...

Global site tag (gtag.js) - Google Analytics