资源描述:
《java编程思想读书笔记(9.1章)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Java编程思想读书笔记(9.1章) 第9章持有你的对象 一.容器简介 1.容器的分类 1.1.Collection:一组各自独立的元素,即其内的每个位置仅持有一个元素。 1)List:以元素安插的次序来放置元素,不会重新排列。 2)Set:不接爱重复元素,它会使用自己内部的一个排列机制 1.2.Map:一群成对的key-value对象,即所持有的是key-valuepairs。 Map中不能有重复的key,它拥有自己的内部排列机制。 2.容器中的元素类型都为Object。从容器取得元素时,必须
2、把它转换成原来的类型。 二.容器的详细介绍 1.Collection Collection不提供get()方法。如果要遍历Collectin中的元素,就必须用Iterator。 1.1.List 1.1.1List(interface):List为Collectin加入了一些函数,使它可以在List内进行安插和移除动作。List会产生ListIterator,通过它可以从两个方向来对List进行走访,也可以在List之内进行元素的安插和移除。 1.1.2ArrayList:可以快速随机访问;但当元素的
3、安插或移除发生在List中央位置时,效率很差。不宜用ArrayList来进行安插和移除操作。 1.1.3LinkedList:与ArrayList相反,适合用来进行安插和移除,但随机访问的速度较慢。此外,可以通过LinkedList来实现stack、queue、deque。 1)LinkedList中的addFirst()、addLast()、getFirst()、getLast()、removeFirst()、removeLast()函数未定义于任何一个interface或baseclass中,所以只能用于
4、LinkedList中。 1.2.Set 1.2.1Set(interface):Set具有和Collection一模一样的interface(区别:List加入了自己的函数),所以Set就是一个Collection,只不过其行为不同罢了。加至Set内的每个元素都必须独一无二,不与其他元素重复;Set不允许持有重复元素,每个元素都必须定义equals()以判断所谓的独一性。 1.2.2HashSet:一种把查找时间看得很重要的Sets。所有元素都必须定义hashCode()。 1.2.3TreeSet:底
5、层结构为tree的一种有序的Set。 2.Map 2.1.Map:维护key-value的关联性,使你可以使用key来查找value。 1)KeySet()函数和values()函数 importjava.util.*; publicclassExplicitStatic{ publicstaticvoidprintKeys(Mapm){ System.out.print(Size=+m.size()); System.out.println(,Keys:+m.keySet()); } pub
6、licstaticvoidprintValues(Mapm){ System.out.println(Values:+m.values()); } publicstaticvoidtest(Mapm){ for(inti=1;i<10;i++) m.put(km+i,m+i); printKeys(m); printValues(m); System.out.println(km1-+m.get(km1)); Setkeys=m.keySet();//(1) Collectionvalu
7、es=m.values();//(2) keys.remove(km2);//(3) values.remove(m1);//(4) System.out.println(km1-+m.get(km1)); printKeys(m); printValues(m); } publicstaticvoidmain(String[]args){ System.out.println(TestingHashMap); test(ne5,km4,km3,km2,km1,km9,km8,km7,km6]
8、 Values:[m5,m4,m3,m2,m1,m9,m8,m7,m6] km1-m1//执行(3)(4)之前 km1-null Size=7,Keys:[km5,km4,km3,km9,km8,km7,km6]//(5) Values:[m5,m4,m3,m9,m8,m7,m6]//(6) 在(1)(2)处代码分别得到了Map中的keys和values。从执行