标签:
数组和集合的区别:
区别1:数组既可以存储基本数据类型,又可以存储引用数据类型,基本数据类型存储的是值,引用数据类型存储的是地址值;集合只能存储引用数据类型(对象)集合中也可以存储基本数据类型,但是在存储的时候会自动装箱变成对象
区别2:数组长度是固定的,不能自动增长;集合的长度的是可变的,可以根据元素的增加而增长
适用环境:如果元素个数是固定的推荐用数组,如果元素个数不是固定的推荐用集合
集合的遍历:1、把集合转成数组,可以实现集合的遍历,用toArray()注意需要向下转型!;2、迭代器 :
Iterator it = c.iterator();
while(it.hasNext()) {
System.out.println(it.next());}
迭代器原理:迭代器是对集合进行遍历,而每一个集合内部的存储结构都是不同的,所以每一个集合存和取都是不一样,那么就需要在每一个类中定义hasNext()和next()方法,这样做是可以的,但是会让整个集合体系过于臃肿,迭代器是将这样的方法向上抽取出接口,然后在每个类的内部,定义自己迭代方式,这样做的好处有二,第一规定了整个集合体系的遍历方式都是hasNext()和next()方法。
List集合的特有功能:
* void add(int index,E element)
* E remove(int index) //删除的时候不会自动装箱,如果要删除数字无法成功!只能输入索引
* E get(int index) //可以用get实现遍历!
* E set(int index,E element)
ConcurrentModificationException出现原因:迭代器遍历时,集合修改集合,
解决办法:使用 :ListIterator lit = list.listIterator();
标签:
原文地址:http://www.cnblogs.com/meng726477179/p/5770944.html