1.List集合

以下面的例子来解释存储有序和存储重复

如上图,我们是怎么添加这些字符串的,打印的时候就是按照这个顺序打印的--存取有序

并且“张三”出现了两次,也存入了两次--存储重复

因为List有索引,所以该接口有关于索引的独特的api



..

1.remove注意事项

List有两个remove方法,一个是根据内容删元素,来自Collection,另一个是自身的根据索引做删除

我们将泛型改为Integer,然后存入111,222,333,因为这三个是整数类型,系统会帮我们自动装箱,修改为Integer类型

假如我们要删除222,那么我们选择remove根据内容删,就会出现问题

出现了索引越界异常,系统把我们的222当成了索引

--此时我们要手动装箱,将222修改为Integer类型,这时再根据内容做删除就不会出现这种问题了



..

2.List遍历操作

第四个操作和ArrayList一样,不多说,主要说第五种方法

1.ListIterator迭代器

与普通迭代器使用方法一样

3.并发修改异常

如图,我们要删除掉集合中的“温油”,遍历集合的时候,调用了集合的remove方法



..

设计者担心迭代器在遍历操作时,使用者乱动数据,导致系统出错,所以设置了此异常

解决方法--使用迭代器自带的增删方法

普通迭代器里自带删除方法,如果我们要删除某些元素,使用迭代器调用remove即可

如果要增加某个元素,普通迭代器里没有add方法,我们要使用ListIterator迭代器,该迭代器自带增加方法



..

总结

了解一个并发修改异常的小bug

List集合--java进阶day09的更多相关文章

  1. Java进阶01 String类

    链接地址:http://www.cnblogs.com/vamei/archive/2013/04/08/3000914.html 作者:Vamei 出处:http://www.cnblogs.com ...

  2. JAVA进阶之旅(一)——增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法

    JAVA进阶之旅(一)--增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法 学完我们的java之旅,其实收获还是很多的,但是依然还有很 ...

  3. Java进阶(三十九)Java集合类的排序,查找,替换操作

    Java进阶(三十九)Java集合类的排序,查找,替换操作 前言 在Java方向校招过程中,经常会遇到将输入转换为数组的情况,而我们通常使用ArrayList来表示动态数组.获取到ArrayList对 ...

  4. Java进阶(二十五)Java连接mysql数据库(底层实现)

    Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...

  5. Java进阶3. 内存回收机制

    Java进阶3. 内存回收机制 20131029 前言: 学过C++的都知道,C++中内存需要程序员自己维护.说道这里,很多开发的同学就感觉很痛苦,当他转向Java的时候,就会说你看Java多好啊,程 ...

  6. Java进阶

    Java进阶(一)Annotation(注解) Java进阶(二)当我们说线程安全时,到底在说什么 Java进阶(三)多线程开发关键技术 Java进阶(四)线程间通信方式对比 Java进阶(五)NIO ...

  7. 7.19实习培训日志- java进阶

    java进阶 java集合 Collection List ArrayList jdk1.2,异步处理,性能高,线程不安全 Vector jdk1.0,同步处理,性能低,线程安全 Set HashSe ...

  8. Java进阶教程:使用Lombok提升开发效率

    Java进阶教程:使用Lombok提升开发效率 Lombok Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO).它通过注释实现这 ...

  9. java进阶视频分享

    更多资源和教程请关注公众号:非科班的科班. 如果觉得我写的还可以请给个赞,谢谢大家,你的鼓励是我创作的动力 课程目录介绍 01.开班仪式02.并发编程专题之多线程基础03.并发编程专题之Java内存模 ...

  10. Java 进阶 hello world! - 中级程序员之路

    Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...

随机推荐

  1. 修改led-core.c 让led的delay_on和delay_off时间不会应为trigger配置改版而重置为1HZ

    先列一下leds trigger的设置流程 echo none > trigger 的流程 led_trigger_set() | led_stop_software_blink() echo ...

  2. h5 canvas 视频透明度抠图,视频需要一个灰度通道副本表示透明度

    视频透明度抠图,视频需要一个灰度通道副本表示透明度 目前抖音等直播平台的礼物特效就是这个方法处理的 <!DOCTYPE html> <html> <head> &l ...

  3. 第二章 dubbo源码解析目录

    6.1 如何在spring中自定义xml标签 dubbo自定义了很多xml标签,例如<dubbo:application>,那么这些自定义标签是怎么与spring结合起来的呢?我们先看一个 ...

  4. redis-cluster 集群增加节点

    分布式存储机制-槽 [1]Redis Cluster 在设计中没有使用一致性哈希(Consistency Hashing),而是使用数据分片(Sharding)引入哈希槽[2]Redis Cluste ...

  5. java代码之美(3)

    Map中的computeIfAbsent方法 Map接口的实现类如HashMap,ConcurrentHashMap,HashTable等继承了此方法,通过此方法可以在特定需求下,让你的代码更加简洁. ...

  6. 玩转云端|演唱会一票难求?快用天翼云边缘安全加速平台AccessOne!

    本文分享自天翼云开发者社区<玩转云端|演唱会一票难求?快用天翼云边缘安全加速平台AccessOne!>,作者:天翼云社区官方账号 Super Idol的笑容虽然非常甜 无数粉丝宝宝的心里却 ...

  7. Sdcb Chats 重磅更新:深度集成 DeepSeek-R1,思维链让 AI 更透明!

    Sdcb Chats 是一个强大且易于部署的 ChatGPT 前端,旨在帮助用户轻松接入和管理各种主流的大语言模型. Sdcb Chats 主要特性: 广泛的大模型支持: 已支持 15 种不同的大语言 ...

  8. POI包操作Excel代码

    1.创建工作簿 (WORKBOOK)     HSSFWorkbook wb = new HSSFWorkbook();     FileOutputStream fileOut = new File ...

  9. DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件

    1 DeepSeek处理自有业务的案例:让AI给你写一份小众编辑器(EverEdit)的语法着色文件 1.1 背景   AI能力再强,如果不能在企业的自有业务上产生助益,那基本也是一无是处.将企业的自 ...

  10. kubsphere应用系列(三)-创建手动流水线

    准备工作 1.1 创建凭证 1.2 添加代码仓库 第一步创建流水线   第二步配置流水线 1.1选择CI/CD模板 1.2删除多余阶段 1.3 配置git仓库信息     1.4配置docker仓库信 ...