网站大量收购独家精品文档,联系QQ:2885784924

day17(集合框架Set)总结.docVIP

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

Day17总结 LinkedList: 特有方法: 增加:addFirst() addLast() JDk1.6之后出现了替代方法 Boolean offerFirst() Boolean offerLast() 实现代码: Public static void main(String[] args){ LinkedLis link=new LinkedList(); Link.addFirst(abc1); Link.addFirst(abc2); Link.addFirst(abc3); Link.addFirst(abc4); While(!link.isEmpty()){//此方法可以按照顺序取出元素,但是被删除,可以去模拟一些简单的数据结构 Sop(link.removeLast());//abc1、abc2、abc3、abc4 } } 重点:模拟堆栈、队列这两种常见的数据结构; 实现代码:队列:先进先出 Public static void main(String[] args){ DuiLie d=new DuiLie(); d.myAdd(abc1); d.myAdd(abc2); d.myAdd(abc3); While(!d.isNull()){//判断是否有元素 Sop(d.myGet()); } } Class DuiLie { Private LinkedList link; DuiLie(){ Link=new LinkedList(); } 提供添加元素的方法 Public void myAdd(Object obj) { link.addFirst(obj);//这里修改为link.addLast()就是堆栈 } 提供获取元素的方法 Public Object myGet(){ Return link.removeLast(); } 判断集合中是否有内容 Public boolean isNull(){ Return link.isEmpty(); } } 获取:Object getFirst()获取对象,不删除,如果集合中没有元素会抛出NoSuchElementException; Object getLast(); JDK1.6后 Object peekFirst() Object peeklast() 获取对象: Object removeFirst()获取到元素,但是删除了。 Object removeLast(); Object pollFirst() Object pollLasr() Set集合:无序、不重复、该接口中的方法和Collection接口中的方法一致。 |--HashSet:低层哈希表数据结构,不同步的,它保证元素唯一性的方式: 根据元素的两个方法来完成的,一个是hashCode、一个equals。只有当hashCode方法算出的哈希值相同时,会再次判断两个元素的equals方法是否为ture; 如果是true说明两个元素相同,不存储,所以往hashSet集合中存储自定义对象时,要覆盖hashCode、equals方法,通过自定义独享具备的特有数据来定义hashCode、equals的具体实现。 哈希结构表分析: Hash表和数组表的比较,哈希表数据结构是按照元素的特征通过指定的功能算出该元素的位置,这种方式查找时候比较快,不 用去遍历整个数组,直接用要查找的数据进行元素即可,存入其他的数据类型也可以,比如说字符串,只要定义一个功能算法对其进行运算即可, 注意:哈希值冲突,比如31%10和21%10最后的值都是1,只是往1角标中存储就冲突了,怎么去解决这个问题呢?哈希表有种特殊的方式:再散列方式(就是再把这个数据进行取模,算出其他的位置),除此之外还有另外一种方式:当算到相同的值时,就在该冲突的位置的基础上向下顺延一个位置出来,这时候便不再冲突了,如过还有值冲突就继续向下顺延,上图结构通过equals方法来判断对象是否想用,这个方法只有在哈希值一样的时候才会用到。 实现代码: 需求:存储自定义对象,比如Person,同姓名和同年龄视为同一个人,是相同元素。 hashSet hs=new hashSet(); Hs..add(new Person(lisi1,20)); Hs..add(new Person(zhangsan,20)); Hs..add(new Person(wangwu,20)); Hs..add(new Person(sunba,20)); Hs..add(new Person(zhangsan,20)); 取出来 Iterator it=hs.iterator(); While(it.hasNext()) { Person p=(P

文档评论(0)

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

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

1亿VIP精品文档

相关文档