本帖最后由 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
- * */
复制代码
|
|