`
zhangwei_david
  • 浏览: 477052 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

subList注意事项

    博客分类:
  • Java
 
阅读更多

  subList是在日常中常用的方法,可以有一些细节可能一直不从注意到。

   subList返回的是当前list的一个视图,如果起始位置相同则返回一个空列表。返回的子列表仅仅是原有的list的视图,对sublist的修改可以直接影响到原list。但是对原有List进行结构化进行修改后则subList则失效,再对其进行操作时会抛出一个java.util.ConcurrentModificationException异常

 

/**
 *
 * @author zhangwei_david
 * @version $Id: ListDemo.java, v 0.1 2014年8月17日 下午4:05:42 zhangwei_david Exp $
 */
public class ListDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        //sub=[A,B]
        List<String> sub = list.subList(0, 2);
        //清除A,B
        sub.clear();
        System.out.println(list);
        //增加 D
        sub.add("D");
        System.out.println(list);
        list.add("E");

        try {
            System.out.println(sub);
        } catch (ConcurrentModificationException cme) {
            System.out.println("发生了预期异常");
        }
    }

 结果是:

 

[C]
[D, C]
发生了预期异常

 

0
0
分享到:
评论

相关推荐

    vue使用注意事项

    ### Vue使用注意事项详解 在进行Vue开发过程中,开发者往往会遇到各种各样的问题。这些问题有的源自于框架本身的限制,有的则是由于使用不当所导致。本文基于实际项目经验,并结合网络资源整理,旨在帮助开发者规避...

    java8源码-JDKSourceCode:阅读jdk1.8的一些注意事项

    subList iterator forEach sort removeIf Vector different with ArrayList 2018/3/26 ChangeLogs LinkedList ctor-2 addFirst addLast addAll add indexOf lastIndexOf peek 获取第一个元素,是 null 就返回 null ...

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

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

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

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

    Java编程中常见的坑

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

    藏经阁-Java开发手册(泰山版)灵魂13问-117.pdf

    手册中提出了多个编程实践和注意事项,包括避免空指针异常、优化HashMap初始化、线程池创建、ArrayList操作、字符串拼接、日志使用、日期格式化、变量命名以及继承策略等方面的问题。 1. **三目运算符的空指针问题*...

    javaweb两中分页方法

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

    动态分页算法java代码

    四、优化与注意事项 1. 数据库层面优化:在数据库查询时,可以使用LIMIT和OFFSET关键字(MySQL)或者ROW_NUMBER()函数(SQL Server)进行分页查询,避免加载全部数据。 2. 缓存:对于不常变动的数据,可以考虑使用...

    藏经阁-Java开发手册(嵩山版)灵魂15问-123.pdf

    Java开发手册是Java开发者必备的指南之一,本手册中提到了许多Java开发中的最佳实践和注意事项。下面我们就从给定的文件中总结出一些重要的知识点: 1.为什么禁止使用Apache Beanutils进行属性的copy? 在Java开发...

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

    阿里巴巴规范建议在每个类、接口、方法上方添加简明扼要的注释,说明其功能、用途及注意事项。此外,对于复杂的逻辑块,应在关键部分添加行内注释,解释代码意图。 三、代码结构与组织 规范鼓励使用面向对象的设计...

    阿里巴巴Java开发手册(嵩山版).pdf

    - **注意事项**:`subList`返回的子列表与原始列表共享底层数组,对子列表的操作将直接影响原始列表。这种设计可以提高效率,但也容易引发意外的副作用。 - **应用指南**:在使用`subList`时,应明确理解其行为,并...

    javaList的定义和方法

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

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

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

    集合(Collection)文档

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

    java 的Collection接口实例详解

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

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

    6. **注意事项** - 数据库查询时,应使用预编译的SQL语句(PreparedStatement),防止SQL注入攻击。 - 分页效率优化:避免一次性加载所有数据,而是根据当前页和每页条数进行动态查询。 - 需要处理边界情况,如用户...

    submax:多合一子域枚举工具

    注意事项** 在使用Submax时,务必遵守法律法规,不得用于非法入侵或未经授权的活动。此外,由于网络延迟和服务器限制,枚举过程中可能需要一定时间,并可能产生大量网络流量,使用时需留意。 综上所述,Submax是...

    Python常用数据结构的使用方法.docx

    根据给定文件的信息来看,虽然标题提及的是“Python常用数据结构的使用方法”,但在描述部分却提到了“Matlab技术的使用教程、使用方法、使用技巧、使用注意事项、使用中常见问题”,这显然存在一定的混淆。...

Global site tag (gtag.js) - Google Analytics