分类
- ArrayList(重点)
- Vector
- LinkedList
1,ArrayList
- 数组结构实现,所有必须连续空间存储,查询快,增删慢。
- JDK1.2之后加入,运行效率快,线程不安全
2,Vector
- 数组结构实现,所有必须连续空间存储,查询快,增删慢。
- JDK1.2之后加入,运行效率慢,线程安全
(ArrayList和Vector最大的区别在于线程安不安全和运行效率)
3,LinkedList
- 双向链表结构实现,增删快,查询慢。
ArrayList
List list = new ArrayList<>();
ArrayList list = new ArrayList<>();
1,常用方法
见文章
- Java集合(三) List子接口
- Java集合(二) Collection父接口
2,ArrayList遍历
1,使用迭代器遍历(Iterator)
Iterator it = arrayList.iterator();
while(it.hasNext()){
Student s = (Student)it.next(); //强转
}
2,使用列表迭代器遍历(ListIterator)
ListIterator li = arrayList.listIterator();
while(li.hasNext()){
Student s = (Student)li.next(); //从前往后遍历
}
while(li.hasPrevious()){
Student s = (Student)li.previous();//从后往前遍历
}
(还有for循环遍历和增强for循环遍历,因为都是List的子接口,懒得写了)
3,底层源码
属性
DEFAULT_CAPACITY = 10; //默认容量
//注意:如果没有向集合中添加任何元素时,容量0,添加一个后,容量为10
//每次扩容是原来的1.5倍
elementData //存放元素的数组
size //实际元素个数
Vector
List list = new Vector<>();
ArrayList list = new Vector<>();
1,常用方法
见文章
- Java集合(三) List子接口
- Java集合(二) Collection父接口
2,遍历
1,老四种遍历方式
2,中枚举器遍历
Enumeration en = vector.elements();
while(en.hasMoreElements()){
String o = (String)en.nextElement();
sout(o);
}
LinkedList
所有都和List一样。
Comments | 0 条评论