一:集合的概念
集合就是一个容器用来装数据,感觉容器是一种高级数组, 集合相比数组而言,还要高级一点,集合可以存储任意多个任意类型的数据
List特点:元素有放入顺序,元素可重复
List接口有三个实现类:LinkedList,ArrayList,Vector
二:ArrayList
ArrayList是内部基于数组的实现,查找修改的效率较快
1:ArrayList的基本方法
① boolean add(E e) 添加元素
② size() 获取元素的个数
更多的方法主要是通过API查询调用
2:ArrayList的遍历
(1) for循环
将控制循环的变量,作为索引值,依次查找数组连续存储空间的值
(2) foreach
for(数据类型 形式参数 : 源){
}
源:需要遍历的存储数据东西: 数组 集合(必须是Iterable接口的实现)
数据类型:源中存数据的类型
形式参数:每次从源中遍历的数据.零时存放在形式参数中
(3)单向迭代器遍历
1. 由于Arraylist实现了Iterable接口,ArrayList对象就是Iterable的实例;
2. Arraylist是个类,ArrayList实现了Iterable接口,那就可以使用了Iterable里面的方法;
1) Iterable 接口里面的方法:
2)
3. 由于ArrayList实现了Iterable接口,Iterable接口里面有iterator()方法,
那ArrayList也可以调用iterator()方法;调用方法,得到一个迭代器,
语法:
ArrayList list = new ArrayList();
Iterator iterator = list.
单向迭代器的方法:
(4)双向迭代器
在Iterator 有个子接口 ListIterator ,它是双向迭代器. 在ArrayList中有对应的方法来获得双向迭代器.
1.语法
ListIterator lit = ages.listIterator();
2. ListIterator 中的方法
1) hasNext(),next()方法
2) hasPrevious()是否有上一个元素,返回boolean类型
3) previous()获取一个元素
三:LinkedList
底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。链表增删快,查找慢
1:LinkedList方法
1. LinkedList() 构造一个空列表;
2. LinkedList(Collection e) 构造一个包含指定collection中的元素的列表;
3.
2:LinkedList的遍历
和ArrayList的遍历一样,可是使用for循环,增强for循环,单向和双向迭代器
3:LinkedList和ArrayList的区别
由于基于数据结构的不同,他提供了很多操作头 和尾的方法