0%

java学习笔记19_2

###并发修改异常(重点)

描述的是:集合和迭代器同时持有同一个对象,当集合在添加,和删除集合元素时(修改呢),迭代器并不知道,所以会发生并发修改异常   
注意:增强for也会产生并发修改异常
如何解决: 第一: 使用普通for循环
          第二(重点):使用listIterator -->是List 特有的,其他集合不能使用  
代码:

常用方法:

a、 E set(int index, E) 修改指定索引上的元素,返回被修改之前的元素
b、 E remove(int index) 移除指定索引上的元素,返回被删除之前的元素
c、 add(int index, E)将元素插入到列表的指定索引上,其他元素顺移
d、remove(int index) 删除并返回元素

数据类型:

栈   : 手枪的弹夹 : 手枪的压栈     ---> 喝酒   --->先进后出,后进先出
队列 :  超市的购物,先排队,先处理   ---> 喝酒   --->先进去,先出来,后进去,后出来
数组 :  查找快:因为底层有索引,并且是连续
       增删慢: 数组的长度的是固定的,当我们在进行增删时,会创建一个新的数组,并且将老数组中的值拷贝到新数组中
链表:  查找慢(底层是链表,两两相连,依次往下找,直到找到为止) --->linkedList 采用二分法查找 
       增删快 :原因在于他仅仅只需要改变相邻元素的地址值

arrayList的特点

底层是可变数组查找快:因为底层有索引,并且是连续

### linkedList 的特点:
查找慢(底层是链表,两两相连,依次往下找,直到找到为止)
Vector : 已经被淘汰,是线程安全的,效率低,其他和arrayList 一致

需求:

我想自己实现一个栈结构:-->先进后出,后进先出