收藏 分销(赏)

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

上传人:綻放 文档编号:8914826 上传时间:2025-03-07 格式:DOC 页数:3 大小:488.84KB 下载积分:8 金币
下载 相关 举报
day17(集合框架Set)总结.doc_第1页
第1页 / 共3页
day17(集合框架Set)总结.doc_第2页
第2页 / 共3页


点击查看更多>>
资源描述
Day17 总结 1、LinkedList: 特有方法: 1、增加: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(){ - 1 -页 如有你有帮助,请购买下载,谢谢! Return link.removeLast() ; } 判断集合中是否有内容 Public boolean isNull(){ Return link.isEmpty(); } } 2、获 取 : Object getFirst() 获 取 对 象 , 不 删 除 , 如 果 集 合 中 没 有 元 素 会 抛 出 NoSuchElementException; Object getLast(); JDK1.6 后 Object peekFirst() Object peeklast() 3、获取对象: Object removeFirst()获取到元素,但是删除了。 Object removeLast(); Object pollFirst() Object pollLasr() 2、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)); - 2 -页 取出来 Iterator it=hs.iterator(); While(it.hasNext()) { Person p=(Person)it.next(); Sop(p.getName()+p.getAge()); } Class Person() { Private String name; Private int age; Person(String name,int age) { This.name=name; This.age=age; } Public void setName(String name){ This.name=name; } Public void getName() { Return name; } Public void setAge(){ This.age=age; } Public int getAge() { Return age; } Public String toString(){ Return "Person:"+name+"::"+age; } 定义一个比较方式,按照年龄进行自然排序 Public int compareTo(Object o){ Person p=(Person)o; Int temp=this.age-p.age; Return temp==0?; /**按照姓名进行自然排序 Int temp= Return temp=-0?this,.age-p.age:temp; } */ } - 3 -页 如有你有帮助,请购买下载,谢谢!
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服