Interface List 在Java.util包中,继承自Collection,Iterable。
实现List接口的类有以下几种
AbstractList,AbstractSequentialList,ArrayList,AttributeList,CopyOnWriteArrayList,LinkedList,RoleList,RoleUnresolvedList,Stack,Vector
其中常用的有ArrayList,LinkedList,Vector
List 是有序的,元素可以重复
ArrayList以数组的形式存储数据,查找快,增删慢
LinkList以链表的形式存储数据,查找慢,增删快
Vector和ArrayList类似,区别是线程安全,查找删减效率低。
常用方法:
void add(int index,Eelement) 指定位置加入元素
boolean addAll(CollectionE> c)/addAll(int index,CollectionE> c) 加入集合中的所有元素
E remove(int index) 删除index处的值
E set(int index,Eelement) 替换index处的值
int size() 返回List中的元素个数
其中LinkList中有几个特别的方法
E peek() 检索list的第一个元素,但不删除
void push(E e) 将元素推送到由此列表表示的堆栈上。
用法
List接口的实现类常用的就是ArrayList和LinkedList,使用这两个类当然要先实例化:
List<E> list = new ArrayList<E>();
List<E> list = new LinkedList<E>();
这里的List当然可以替换成ArrayList和LinkedList,我觉得应该是 里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象。
然后通过list实例来调用以上方法即可。
遍历List的三个方法
foreach for(String s : list){ }
for循环 for(int i=0;i<list.length;i++){ }
Iterator迭代器 首先获取Iterator实例 Iterator it = list.iterator() 然后在while(it.hasNext()){ }体内执行it.next()
总结
对List接口作了简要的介绍,一起学习,一起成长。