欢迎来到天天文库
浏览记录
ID:43822721
大小:950.00 KB
页数:29页
时间:2019-10-15
《Java程序设计--集合的总结学习》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、集合类的总结学习Java程序设计集合所能做到的我们需要在容器里面存储某个应用系统的当前的所有的在线用户信息,而当前的在线用户信息是时刻都可能在变化的。也就是说,我们需要一种存储数据的容器,它能够自动的改变这个容器的所能存放的数据数量的大小。这一点上,如果使用数组来存储的话,就显得十分的笨拙。假定一个购物网站,经过一段时间的运行,我们已经存储了一系列的购物清单了,购物清单中有商品信息。如果我们想要知道这段时间里面有多少种商品被销售出去了。那么我们就需要一个容器能够自动的过滤掉购物清单中的关于商品的重复信息。如果使用数组,这也是很难实现的。集合所具有的
2、优势我们经常会遇到这种情况,我知道某个人的帐号名称,希望能够进一步了解这个人的其他的一些信息。也就是说,我们在一个地方存放一些用户信息,我们希望能够通过用户的帐号来查找到对应的该用户的其他的一些信息。再举个查字典例子:假设我们希望使用一个容器来存放单词以及对于这个单词的解释,而当我们想要查找某个单词的意思的时候,能够根据提供的单词在这个容器中找到对应的单词的解释。如果使用数组来实现的话,就更加的困难了。本章学习提示集合框架中的接口Collection:集合层次中的根接口,JDK没有提供这个接口直接的实现类。Set:不能包含重复的元素。SortedS
3、et是一个按照升序排列元素的Set。List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。Map:包含了key-value对。Map不能包含重复的key。SortedMap是一个按照升序排列key的Map。集合框架中的实现类图SortedSetSetListMapHashSetLinkedHashSetTreeSetArrayListLinkedListSortedMapHashMapTreeMapArrayListArrayList:我们可以将其看作是能够自动增长容量的数组。利用ArrayList的toArray()返回一个数组
4、。Arrays.asList()返回一个列表。迭代器(Iterator)给我们提供了一种通用的方式来访问集合中的元素对List的view二种方式。一种是测量迭代元素的时间,另一种测量使用toArray调用创建数组。最后得到结果:使用toArray调用中创建的数组迭代元素的速度要比使用iterator的速度大约快30%到60%。但如果将使用toArray方法创建数组的时间开销含在内。则使用iterator实际上要快10%到20%,所以如果我们一般不需要一个中间数组。则不需要创建它。而使用迭代的方式。集合迭代器的工作原理返回的元素删除的元素next()
5、remove()next()List中不安全的操作Listlist=newArrayList();//定义一个Listfor(inti=0;i<6;i++){list.add("str"+i);}//删除list中前面的str0,str1,str2。privatevoidunSafeDeleteTopByCount(intcount){//调用方法count传入值3for(inti=0;i6、r1str3str5为什么呢,当我们删除了index为0的元素str0后,由于List的size变化,index为0的元素会变为str1,而index为1的元素会变为str2,所以我们就得不到想要的结果了。List中安全的删除操作for(inti=count-1;i>=0;i--){list.remove(i);}for(inti=0;ilocalList=newArrayList();for(inti=0;i7、add(list.get(i));}list.removeAll(localList);ListlocalList=newArrayList();localList.addAll(list);for(inti=0;iit=list.iterator();it.hasNext();){....}这种方式在循环执行过程中会进行数据锁定,性能稍差,同时8、,如果你想在循环过程中去掉某个元素,只能调用it.remove方法,不能使用list.remove方法,否则一定出并发访问
6、r1str3str5为什么呢,当我们删除了index为0的元素str0后,由于List的size变化,index为0的元素会变为str1,而index为1的元素会变为str2,所以我们就得不到想要的结果了。List中安全的删除操作for(inti=count-1;i>=0;i--){list.remove(i);}for(inti=0;ilocalList=newArrayList();for(inti=0;i7、add(list.get(i));}list.removeAll(localList);ListlocalList=newArrayList();localList.addAll(list);for(inti=0;iit=list.iterator();it.hasNext();){....}这种方式在循环执行过程中会进行数据锁定,性能稍差,同时8、,如果你想在循环过程中去掉某个元素,只能调用it.remove方法,不能使用list.remove方法,否则一定出并发访问
7、add(list.get(i));}list.removeAll(localList);ListlocalList=newArrayList();localList.addAll(list);for(inti=0;iit=list.iterator();it.hasNext();){....}这种方式在循环执行过程中会进行数据锁定,性能稍差,同时
8、,如果你想在循环过程中去掉某个元素,只能调用it.remove方法,不能使用list.remove方法,否则一定出并发访问
此文档下载收益归作者所有