您的位置:首页 > 职场人生

黑马程序员 java基础之list集合

2015-01-05 21:45 218 查看


------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------


集合
在集合框架中,Collection为与这个框架的顶层,它有两个子接口,List和Set

在List和Set接口下,又有很多特殊的容器。因为每一个容器对数据的存储方式都有不同,这个存储方式称之为:数据结构,它们自身具备的特点不同。

 

Collection

作为一个集合,应该具有的方法:增删改查

在collection中,存在这样一些抽象方法

add(),增加一个元素

addAll(),一次增加一堆元素(实现并集)

remove 删除一个元素

removeAll 删除一堆元素(实现差集)A-B

retainAll 保留两个集合中共有的元素。交集

对象创建在堆内存中,而对象的引用在栈内存中。

在集合中存储的都是对象的引用(地址)。

<span style="font-size:14px;color:#000000;">ArrayList al = newArrayList();
02.
03. //添加元素
04.
05. al.add("01");
06.
07. al.add("02");
08.
09. al.add("03");
10.
11. al.add("04");
12.
13. //获取个数,集合的长度
14.
15. System.out.println(al.size());
16.
17. //删除元素
18.
19. al.remove("01");
20.
21. //判断元素
22.
23. System.out.println(al.contains("02"));
24.
25.ArrayList al2 = new ArrayList();
26.
27. al2.add("01");
28.
29. al2.add("02");
30.
31.//取交集,al中存放的为交集
32.
33.System.out.println(al.retainAll(al2));
34.
35. System.out.println(al);
</span>
当我们取出元素中的集合时候,就可以使用迭代器,其实就是集合取出元素的方式

每个集合中有各自特定的取出方式,也就有一个特定的迭代器。取出这个类就定义在集合的内部。也就是用来取元素,在集合内部操作,这个迭代器内部类抽取了一些共性的方法,叫做Iterator接口,这个接口定义了抽象的方法,在各自不同的数据结构中,取出和判断的方式不同,故各个数据结构实现了自己特定的迭代器对象。可以使用  数据结构对象.iterator();得到其内部实现的迭代器。

Collection中,有两类常见的子接口(各自有各自体系下的特定的方法)

List:元素是有序的(按照存入的前后),元素可以重复。因为该集合体系有索引。可以在指定位置对元素进行操作。凡是带角标的,底层的实现都是数组结构。

对于List集合来说:比较元素是否相等使用的是存入元素的equals方法。

而且在删除元素的时候,也是使用equals去寻找有没有。然后去删除。

Set:元素是无序(内部其实有序,但是对于用户来说,是无序的,不根据用户的存入前后,顺序的存放)的,元素不可以重复。

对于List和Set中的共性方法,都在Collection中已经定义了,现在学习List和Set中的特殊方法。

List(最大的特定就是通过索引对集合中的元素进行操作)

增  add(index,element);

     add(index,Collection);

删  remove(index);

改   set(index,element);

查   get(index);

     subList(from,to);

     ListIterator();

<span style="font-size:14px;color:#000000;">ArrayList al = new ArrayList();
02.
03. al.add("00");
04.
05. //添加元素使用特有方法
06.
07. al.add(1,"01");
08.
09. System.out.println(al);
10.
11. //删除指定位置的元素
12.
13. al.remove(0);
14.
15. System.out.println(al);
16.
17. //修改元素。
18.
19. al.set(0, "001");
20.
21. System.out.println(al);
22.
23.
24.
25. //通过角标获取元素
26.
27. System.out.println(al.get(0));
28.
29. //获取所有的元素
30.
31. for(int x =0;x<al.size();x++)
32.
33. {
34.
35. System.out.println(al.get(x));
36.
37. }
38.
39. //使用迭代器的方式
40.
41. Iterator it = al.iterator();
42.
43. while(it.hasNext())
44.
45. {
46.
47. System.out.println(it.next());
48.
49. }
50.
51.
52.
53. //返回某一个特定元素在集合中的位置
54.
55. System.out.println(al.indexOf("001"));
56.
57. al.clear();
58.
59. al.add("11");
60.
61. al.add("12");
62.
63. al.add("13");
64.
65. List sub = al.subList(0,2);
66.
67. System.out.println(sub);

</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: