List集合--java进阶day09
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的更多相关文章
- Java进阶01 String类
链接地址:http://www.cnblogs.com/vamei/archive/2013/04/08/3000914.html 作者:Vamei 出处:http://www.cnblogs.com ...
- JAVA进阶之旅(一)——增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法
JAVA进阶之旅(一)--增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法 学完我们的java之旅,其实收获还是很多的,但是依然还有很 ...
- Java进阶(三十九)Java集合类的排序,查找,替换操作
Java进阶(三十九)Java集合类的排序,查找,替换操作 前言 在Java方向校招过程中,经常会遇到将输入转换为数组的情况,而我们通常使用ArrayList来表示动态数组.获取到ArrayList对 ...
- Java进阶(二十五)Java连接mysql数据库(底层实现)
Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...
- Java进阶3. 内存回收机制
Java进阶3. 内存回收机制 20131029 前言: 学过C++的都知道,C++中内存需要程序员自己维护.说道这里,很多开发的同学就感觉很痛苦,当他转向Java的时候,就会说你看Java多好啊,程 ...
- Java进阶
Java进阶(一)Annotation(注解) Java进阶(二)当我们说线程安全时,到底在说什么 Java进阶(三)多线程开发关键技术 Java进阶(四)线程间通信方式对比 Java进阶(五)NIO ...
- 7.19实习培训日志- java进阶
java进阶 java集合 Collection List ArrayList jdk1.2,异步处理,性能高,线程不安全 Vector jdk1.0,同步处理,性能低,线程安全 Set HashSe ...
- Java进阶教程:使用Lombok提升开发效率
Java进阶教程:使用Lombok提升开发效率 Lombok Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO).它通过注释实现这 ...
- java进阶视频分享
更多资源和教程请关注公众号:非科班的科班. 如果觉得我写的还可以请给个赞,谢谢大家,你的鼓励是我创作的动力 课程目录介绍 01.开班仪式02.并发编程专题之多线程基础03.并发编程专题之Java内存模 ...
- Java 进阶 hello world! - 中级程序员之路
Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...
随机推荐
- Uniapp仿ChatGPT Stream流式输出(非Websocket)
前言 最近写一个chagpt小程序,流式输出可以使用websocket也可以使用stream来实现,这里就不折腾websocket的了,我发现uniapp实现流式输出的方式挺多的,主要是有些小程序还不 ...
- 使用R语言查询某物种所有通路及通路内的基因
使用R语言查询某物种所有通路及通路内的基因,这里使用Y书的clusterProfiler包. 这里以人类为例查询所有通路及通路内的基因: library(R.utils) R.utils::setOp ...
- G1原理—2.G1是如何提升分配对象效率
大纲 1.G1的对象分配原理是怎样的 2.深入分析TLAB机制原理 3.借助TLAB分配对象的实现原理是什么 4.什么是快速分配 + 什么是慢速分配 5.大对象分配的过程 + 与TLAB的关系 6.救 ...
- CDS标准视图:维修工单工艺数据 I_MAINTORDEROPERATIONDATA
视图名称:维修工单工艺数据 I_MAINTORDEROPERATIONDATA 视图类型:基础 视图代码: 点击查看代码 @EndUserText.label: 'Maintenance Order ...
- [学习笔记]最近公共祖先(LCA)之倍增算法
1.定义 倍增法,顾名思义就是翻倍.它能够大大地优化时间复杂度.这个方法在很多算法中均有应用,例如求 LCA(最近公共祖先).(大雾) 2.框架 如下图,我们想找 \(4\) 和 \(8\) 的最近公 ...
- Win10部分软件程序中输入中文变成问号??如何处理【详细步骤】
近期在win10系统中,出现了一个问题,那就是在部分程序软件中输入中文之后,会直接显示问号,哪怕是更换输入法也没有任何用.那么遇到这个问题,我们要如何处理呢?下面IT百科分享一下Win10系统部分软件 ...
- Nodify学习 四:预先连接
前置 预先连接 可以从连接器创建预先连接,并可以放置在ItemContainer或Connector上(如果AllowOnlyConnectors为false). 预先连接的Content可以使用Co ...
- vim技巧:设置编码格式,批量注释(待续其他功能)
navicate导出的sql由于是win平台所有模式都是dos所以上传到服务器需要更改模式类型为unix :set ff 查看当前文本的模式类型,一般为dos,unixdos 代表windows转出类 ...
- tomcat配置用户名密码
1.配置tomcat-user.xml<role rolename="manager-gui"/><role rolename="manager-scr ...
- 机器学习中的 K-均值聚类算法及其优缺点
K-均值聚类算法是一种经典的机器学习算法,用于将数据集分成 K 个不同的簇.它是一种无监督学习算法,即不需要标签或任何先验知识来指导聚类过程. 算法的工作原理如下: 随机选择 K 个数据点作为初始聚类 ...