JavaSE_15_集合类(二).ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
向HashSet中添加元素时,系统为保证不重复,先比较hashCode( ) ,如果相同,再比较equals(),如果还相同,则认为是同一个对象,不再加入,add(...)返回false,[Demo] 要存入HashSet集合的自定义类型的对象通常需要重写hashCode()和equals()方法。 同一个对象的hash值一定相同,同一个hash值不一定是同一个对象,甚至可能是不同类的对象。 Demo HashSet set1加入字符串 set2加入Integer set3加入Student对象,属性有name,age 练习 创建GirlFriend对象,name,age,sex,birthday存入HashSet集合中 如果对象所有的属性值都一致,就认为是同一对象,不重复存储,否则就存储,然后两种方式遍历set集合。 重写hashCode(),equals(),toString() 练习 HashSet中存放Person(重写hashCode,equals,toString) 属性有name,age,sex,height,weight hashCode()计算:name,age,sex equals()计算:name,age,sex,height 什么是 可排序的 加入TreeSet集合中的javabean类本身要实现Comparable [kɑmp?r?bl]接口 自定义一个实现Comparator[kɑmp?,ret?]接口的比较器实现类,在创建TreeSet对象时,将自定义比较器传入构造方法 如果加入的类”不可比较”,则add()方法在运行时会报错 Demo TreeSet 加入字符串 加入Integer 加入MyBean类的对象(里面有int a,b,c三个属性,先按照a顺序排,a相同再按照b顺序排,b又相同则按照c排序) 加入Person(实现Comparable接口,重写compareTo,toString) TreeSetStudent set = new TreeSetStudent(new PersonComparator()); 加入Person子类类型Student,自定义比较器实现Comparator接口 TreeSet练习 练习1.人类,属性:姓名,收入,年龄,(单独一本)书, 书类, 属性: 书名,价格 用Comparable接口实现 存储TreeSetPerson集合,排序规则: A:先按照收入排序:从高到低 B:收入相等的情况下,按照年龄排序:从小到大 C:如果收入和年龄都相等,按照姓名排序,字典顺序(String类的compareTo方法) D:如果以上3个属性都相等,按照书排序,先按照书价格:从低到高,如果书价格相等,按照书名(字典顺序)。 练习2.利用自定义比较器Comparator实现类完成上题。 练习3.使用匿名内部类自定义比较器完成上题。 java提供的copy方法 Collections: static void copy(List dest, List src) 将src列表内的元素复制到dest列表中 Arrays: static?int[] copyOf(int[]?original, int?newLength) ??????????复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。 System: static?void arraycopy(Object?src, int?srcPos, Object?dest, int?destPos, int?length) ??????????从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。 集合与数组的相互转换 Arrays类的方法 [数组]?集合 static T ListT asList(T... a) 返回一个受指定数组支持的固定大小的列表,例如: Integer [] arr = {1,2,3};//必须是引用数据类型 ListInteger list = Arrays.asList(arr); String[] arr2 = new String[] {1, 2}; ListString list = Arrays.asList(arr2); 集合与数组的相互转换 Collection接口的方法 集合?[数组] Object[] toArray() 返回包含此 collection 中所有元素的Object数组。 T T[] toArray(T[]?a) ???????返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。 List list = new ArrayList(); list.add

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档