黑马程序员---Java中的集合(二)--List派系
扫描二维码
随时随地手机看文章
关于Java中的集合-List派系(二)
上一篇总结了集合框架中老大Collection,这篇总结它下面的几个小弟List派系
1.List派系
List是一个接口,是这个列表清单的顶层接口 。他下面有这些小弟
数组链表ArrayList,链表LinkedList,数组Vector
凡是List集合中的所有小弟,特点:
A . 存储到List集合中的对象,有序排列的 123 abc
B. 存储的时候,和取出的时候顺序一致
C. List集合允许存储重复对象
D. List集合存储的对象都有下标
//================================================
2.List接口中的方法
void add(int index, E element) 在一个指定的位置上,插入一个对象
Object get(int index)通过下标,获取指定下标上的元素 。通过for循环遍历也可以获取集合。
Object remove(int index)通过下标,移除指定的元素 .返回的是,被删除的那个元素
Object set(int index, Object Element)修改指定位置上的元素 。
List subList(int fromIndex, int toIndex) 获取集合一部分,返回新集合 subtring
listIterator() 返回List特有迭代器对象
//================================================
3.List派系的特有迭代器ListIterator
A.正向遍历集合,逆向遍历集合 。遍历的过程中,可以修改集合,包括增加,删除
B.逆向遍历的 前提条件,正向遍历一次
hasPrevious() == hasNext()
previous() == next()
使用List集合进行特有的逆向遍历的案例:
//使用List集合进行特有的逆向遍历
private static void method_1(){
List list = new ArrayList();
list.add("abc1");
list.add("abc2");
list.add("abc3");
list.add("abc4");
ListIterator lit = list.listIterator();
//前提条件,正向遍历一次
while(lit.hasNext()){
System.out.println(lit.next());
}
System.out.println("=========================");
while(lit.hasPrevious()){
System.out.println(lit.previous());
}
}
//=====================================================
4. ArrayList类
1. 底层数据结构是数组,可变的数组
2. 增长率50%
3. 查询快,增删慢
4. 线程不安全,执行效率很高
5. 需要集合存储对象的时候,如果迭代比较频繁,首先考虑使用ArrayList
增insert 删delete 改update 查select
//=====================================================
5. Vector 类
这个集合的底层数据结构,是可变数组结构
查询快,增删慢
Vector增长率100%
Vector集合线程安全的,执行效率低
从1.2版本开始,ArrayList取代Vector
//=====================================================
6. LinkedList类
LinkedList底层数据结构,链表数据结构
查询慢,增删快
线程不安全,执行效率高
LinkedList自己特有的方法
void addFirst(E e)
将指定元素插入此列表的开头。
void addLast(E e)
将指定元素添加到此列表的结尾。
E removeFirst()
移除并返回此列表的第一个元素。
E removeLast()
移除并返回此列表的最后个元素
E getFirst()
返回此列表的第一个元素。
E getLast()
返回此列表的最后一个元素。