Java学习之集合(List接口)

List特有的常见方法:有一个共性特点:都可以操作角标
1、添加
   void add(int index, E element);
  void addAll(int index, collection<?> c);
2、删除
  Object remove(int index);
3、修改
  Object set(int index, E element);
4、获取
  Object get(int index);
  int indexOf(Object o);
  int lastIndexOf(Object 0);
  List subList(int fromIndex,int toIndex);//获取子列表
 1 import java.util.ArrayList;
 2 import java.util.Iterator;
 3 import java.util.List;
 4 import java.util.ListIterator;
 5 
 6 public class ListDemo {
 7 
 8     public static void main(String[] args) {
 9     List list = new ArrayList();
10     show(list);
11 
12     show2(list);
13 
14     modify(list);
15     }
16 
17     public static void show(List list) {
18     list.add("abc1");
19     list.add("abc2");
20     list.add("abc3");
21     list.add("abc4");
22     list.add("abc5");
23     System.out.println("list add:"+list);
24     // 插入元素
25     list.add(1, "abc10");
26     System.out.println("list index add:"+list);
27     // 删除元素
28     list.remove(2);
29     System.out.println("list remove(index):"+list);
30     // 修改元素
31     list.set(2, "abc8");
32     System.out.println("list set(index,value):"+list);
33     // 获取元素
34     //System.out.println(list.get(5));//IndexOutOfBoundsException
35     }
36 
37     public static void show2(List list) {
38     // Iterator it = list.iterator();
39     System.out.println("=========Iterator=========");
40     for (Iterator it = list.iterator(); it.hasNext();) {
41         System.out.println("next:"+it.next());
42     }
43     // list 特有的取出元素的方式之一
44     System.out.println("=========list.size()=========");
45     for (int x = 0; x < list.size(); x++) {
46         System.out.println("list get(index):"+list.get(x));
47     }
48     }
49 
50     public static void modify(List list) {
51     /*
52      * for (Iterator it = list.iterator(); it.hasNext();) 
53      * { 
54      * Object obj = it.next();// java.util.concurrentmodificationException //
55      * 异常原因:集合和迭代器同时操作集合,导致异常 
56      * if (obj.equals("abc2")) 
57      * { 
58      *     //操作集合
59      *     list.add("abc9"); 
60      * } else
61      *     System.out.println(obj); }
62      */
63     System.out.println(list);
64 
65     // 异常解决:可以使用ListIterator来完成在迭代中对元素进行操作
66     // 注意:只有list集合具备ListIterator接口
67     /*
68      * ListIterator接口方法 hasNext(); next();
69      * 
70      * hasPrevious(); previous()
71      */
72 
73     System.out.println("=========ListIterator 可修改集合=========");
74     for (ListIterator it = list.listIterator(); it.hasNext();) {
75         Object obj = it.next();
76         if (obj.equals("abc4")) {
77         it.add("abc9");
78         } else
79         System.out.println(obj);
80     }
81     System.out.println("list 特有的ListIterator"+list);
82     }

結果:

原文地址:https://www.cnblogs.com/WarBlog/p/12097302.html