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

posted @ 2025-03-23 15:09  直実  阅读(11)  评论(0)    收藏  举报