黑马程序员技术交流社区
标题:
关于List的一点总结,欢迎补充
[打印本页]
作者:
linder_qzy
时间:
2015-3-12 14:49
标题:
关于List的一点总结,欢迎补充
本帖最后由 linder_qzy 于 2015-3-12 15:06 编辑
[size=14.44444465637207px]关于List的一点总结,欢迎补充
List:元素是有序的,元素可以重复。因为该集合体系有索引。
|--ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快,但是增删稍慢。线程不同步。
|--LinkedList:底层使用的是链表数据结构。特点:增删速度快,但是查询速度慢。
|--Vector:底层是数组数据结构,与ArrayList用法完全一样,区别在于Vector是线程同步的,已被ArrayList替代了。
List特有的几种方法,凡是可以操作角标的方法都是该体系的特有方法。
增
add(int index,Object obj);
addAll(int index,Collection col);
删
remove(int index);
改
set(int index,Object obj);
查
get(int index);
subList(int fromIndex,int endIndex);
listIterator();
List集合特有的迭代器。ListIterator是Iterator的子接口。
Iterator在迭代时不可以通过集合对象的方法操作集合中的元素,会发生ConcurrentModificationException异常。
如果想要在迭代时对集合进行添加、修改操作就需要使用其子接口ListIterator。
ListIterator接口只能通过List.listIterator()方法获得。
Vector:
枚举是Vector特有的取出方式。枚举和迭代器很像,其实枚举和迭代器是一样的。
因为枚举的名称以及方法名称过长所以被迭代器取代了。
下边介绍下List中迭代器以及Set遍历的用法
class DemoCollection {
public static void main(String[] args) {
listIterator();
method_vector();
}
public static void listIterator() {
ArrayList al = new ArrayList();
al.add("listIterator_01");
al.add("listIterator_02");
al.add("listIterator_03");
al.add("listIterator_04");
sop("listIterator原集合=" + al);
/*
* List集合特有的迭代器。ListIterator是Iterator的子接口。
* Iterator在迭代时不可以通过集合对象的方法操作集合中的元素,会发生ConcurrentModificationException异常。
* 如果想要在迭代时对集合进行添加、修改操作就需要使用其子接口ListIterator。
* ListIterator接口只能通过List.listIterator()方法获得。
*/
ListIterator li = al.listIterator();
while (li.hasNext()) {
Object obj = li.next();
if (obj.equals("listIterator_02"))
li.add("listIterator_05");
}
//遍历添加后的集合
Iterator ite = al.iterator();
while(ite.hasNext()){
System.out.println("listIterator修改后集合包含"+ite.next());
}
}
/*
* 枚举是Vector特有的取出方式。 枚举和迭代器很像,其实枚举和迭代器是一样的。 因为枚举的名称以及方法名称过长所以被迭代器取代了。
*/
public static void method_vector() {
Vector v = new Vector();
v.add("vector_01");
v.add("vector_02");
v.add("vector_03");
v.add("vector_04");
Enumeration en = v.elements();
while (en.hasMoreElements()) {
sop(en.nextElement());
}
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
/*运行结果
* listIterator原集合=[listIterator_01, listIterator_02, listIterator_03, listIterator_04]
listIterator修改后集合包含listIterator_01
listIterator修改后集合包含listIterator_02
listIterator修改后集合包含listIterator_05
listIterator修改后集合包含listIterator_03
listIterator修改后集合包含listIterator_04
vector_01
vector_02
vector_03
vector_04
* */
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2