ListDemo
1 /*
2 Collection
3 |--List:元素是有序的,元素可以重复,因为该集合有索引
4 |--ArrayList:底层的数据结构是数组结构。特点:查询速度很快,但增删速度慢。线程不同步
5 |--LinkedList:底层使用的是链表结构。特点:增删速度很快,查询稍慢
6 |--Vector:底层是数组结构。线程同步。已经被ArrayList替代了。
7 new ArrayList()会初始化一个长度为10的空数组,元素超过10时,会自动生成增长50%的新数组,也就是15
8 vector:初始为10,自动延长100%,也就是20
9 |--Set:元素无序的,元素不可以重复
10 List:
11 特有的方法:凡是可以操作角标的方法都是该体系特有的方法
12 增:add(index,element);
13 addAll(index,Collection);
14 删:remove(index);
15 改:set(index,element);
16 查:get(index);
17 subList(from,to);
18 listIterator();
19
20 List集合特有的迭代器:ListIterator 是Iterator的子接口
21 在迭代时,不能通过集合对象的方法操作集合中的元素
22 因为会发生并发异常。
23 所以在迭代时,只能用迭代器的方法操作元素,可是iterator方法是有限的
24 如果想要其他的操作如添加,修改等,就需要使用其子接口。ListIterator
25 该接口只能通过List集合的listLterator()获取
26 */
27 import java.util.*;
28 class ListDemo
29 {
30 public static void sop(Object obj)
31 {
32 System.out.println(obj);
33 }
34 public static void method()
35 {
36 ArrayList al=new ArrayList();
37 al.add("java01");
38 al.add("java02");
39 al.add("java03");
40 sop(al);
41 //在指定位置添加元素
42 al.add(1,"java04");
43 sop(al);
44 //通过角标修改元素
45 al.set(2,"java04");
46 sop(al);
47 //通过角标获取元素
48 al.get(1);
49 al.get(2);
50 //获取所有元素
51 for(int i=0;i<al.size();i++)
52 {
53 sop(al.get(i));
54 }
55 /*
56 Iterator it = al.iterator();
57 while(it.hasNext())
58 {
59 sop(it.next());
60 }
61 */
62 //通过indexOf()获取元素位置
63 sop("index="+al.indexOf("java03"));
64 }
65 public static void main(String[] args)
66 {
67 //演示列表迭代器
68 ArrayList al = new ArrayList();
69 al.add("java01");
70 al.add("java02");
71 al.add("java03");
72 sop(al);
73 /*
74 Iterator it = al.iterator();
75 while(it.hasNext())
76 {
77 Object obj = it.next();
78 if(obj.equals("java02"))
79 {
80 //al.add("java02");
81 it.remove();//将java02的引用从集合中删除了
82 }
83 sop(obj);
84 }
85 */
86 ListIterator li = al.listIterator();
87 while(li.hasNext())
88 {
89 Object obj = li.next();
90 if(obj.equals("java02"))
91 {
92 //li.add("java02");
93 li.set("java06");
94 }
95 }
96 sop(al);
97 sop("hasNext():"+li.hasNext());
98 //判断前面有没有元素
99 sop("hasPrevious():"+li.hasPrevious());
100 while(li.hasPrevious())
101 {
102 sop("pre:"+li.previous());
103 }
104 }
105 }
posted on 2018-01-05 20:46 HashCodeWac 阅读(112) 评论(0) 收藏 举报
浙公网安备 33010602011771号