使用集合的技巧.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用集合的技巧

使用集合的技巧看到Array就是数组结构,有角标,查询速度很快。?看到link就是链表结构:增删速度快,而且有特有方法。addFirst;?addLast;?removeFirst();?removeLast();?getFirst();getLast();?看到hash就是哈希表,就要想要哈希值,就要想到唯一性,就要想到存入到该结构的中的元素必须覆盖hashCode,equals方法。?看到tree就是二叉树,就要想到排序,就想要用到比较。?比较的两种方式:?一个是Comparable:覆盖compareTo方法;?一个是Comparator:覆盖compare方法。?LinkedHashSet,LinkedHashMap:这两个集合可以保证哈希表有存入顺序和取出顺序一致,保证哈希表有序。??集合什么时候用??当存储的是一个元素时,就用Collection。当存储对象之间存在着映射关系时,就使用Map集合。??保证唯一,就用Set。不保证唯一,就用List。Collections:它的出现给集合操作提供了更多的功能。这个类不需要创建对象,内部提供的都是静态方法。?静态方法:?Collections.sort(list);//list集合进行元素的自然顺序排序。?Collections.sort(list,new?ComparatorByLen());//按指定的比较器方法排序。?class?ComparatorByLen?implements?ComparatorString{??public?int?compare(String?s1,String?s2){???int?temp?=?s1.length()-s2.length();???return?temp==0?pareTo(s2):temp;??}?}?Collections.max(list);?//返回list中字典顺序最大的元素。?int?index?=?Collections.binarySearch(list,zz);//二分查找,返回角标。?Collections.reverseOrder();//逆向反转排序。?Collections.shuffle(list);//随机对list中的元素进行位置的置换。??将非同步集合转成同步集合的方法:Collections中的??XXX?synchronizedXXX(XXX);?List?synchronizedList(list);?Map?synchronizedMap(map);?原理:定义一个类,将集合所有的方法加同一把锁后返回。??Collection?和?Collections的区别:?Collections是个java.util下的类,是针对集合类的一个工具类,提供一系列静态方法,实现对集合的查找、排序、替换、线程安全化(将非同步的集合转换成同步的)等操作。?Collection是个java.util下的接口,它是各种集合结构的父接口,继承于它的接口主要有Set和List,提供了关于集合的一些操作,如插入、删除、判断一个元素是否其成员、遍历等。?-------------------------------------------------------?Arrays:?用于操作数组对象的工具类,里面都是静态方法。?asList方法:将数组转换成list集合。?String[]?arr?=?{abc,kk,qq};?ListString?list?=?Arrays.asList(arr);//将arr数组转成list集合。?将数组转换成集合,有什么好处呢?用aslist方法,将数组变成集合;?可以通过list集合中的方法来操作数组中的元素:isEmpty()、contains、indexOf、set;??注意(局限性):数组是固定长度,不可以使用集合对象增加或者删除等,会改变数组长度的功能方法。比如add、remove、clear。(会报不支持操作异常UnsupportedOperationException);?如果数组中存储的引用数据类型,直接作为集合的元素可以直接用集合方法操作。?如果数组中存储的是基本数据类型,asList会将数组实体作为集合元素存在。??集合变数组:用的是Collection接口中的方法:toArray();?如果给toArray传递的指定类型的数据长度小于了集合的size,那么toArray方法,会自定再创建一个该类型的数据,长度为集合的size。??如果传递的指定的类型的数组的长度大于了集合的size,那么toArray方法,就不会创建新数组,直接使用该数组即可,并将集合中的元素存储到数组中,其他为存储元素的位置默认值null。??所以,在传递指定类型数组时,最好的方

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档