- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CoreJava_Collection
CoreJava:Collection 项目部 韩晓剑 cnhanxj@ 内容概要 集合家族族谱 Collection 接口 Collection 接口中的常用方法: boolean add(Object o) 新增对象o boolean remove(Object o) 删除对象o int size() 返回集合中的对象数 boolean isEmpty() 判断集合是否为空(size()==0) boolean contains(Object o) 判断集合是否包含对象o void clear() 清空集合 Iterator iterator() 返回迭代集合的迭代器 Object[] toArray() 返回集合中所有对象的数组 Collection系列之 Set 接口 无序的HashSet类 HashSet: HashSet底层基于HashMap、hash算法 HashSet含有加载因子(类似打折) HashSet扩容并不是所有的空间都放满才申请新的空间,一般是75%的容量后就去扩容 hashCode方法 Object类中的hashCode()的方法是所有类都会继承的方法,这个方法会算出一个Hash码值返回, 如果数组中的元素和要加入的对象的hashCode()返回了相同的Hash码值,才会用equals()方法来判断两个对象的内容是否相同,相同则丢弃,不同则再找位置将其放 注意 要存入HashSet的集合对象中的自定义类必须覆盖hashCode()、equals()两个方法,以确保集合中元素不重复 练习 目的 使用 HashSet 作为实现类 练习 Collection 接口中常用方法的使用 代码片段 使用 Iterator 遍历集合 Iterator接口 Iterator也算是Java集合框架的成员 Iterator跟Collection系列和Map系列不同 Collection和Map系列用于盛装对象 Iterator 是则主要用于遍历Collection系列集合中的元素(大号迭代器) Collection接口本身继承了Iterable接口,所以才能被迭代 Iterator中的方法 boolean hasNext() : 如果被迭代的集合元素还未遍历完,返回true Object next() : 返回集合里下一个元素(注意是下一个) void remove() : 删除集合中上一次next方法返回的元素 练习 目的 使用Iterator迭代集合(注意迭代的是Collection系的集合) Map系列的集合没有继承Iterable接口,迭代有所不同。 代码片段 使用forEach循环遍历集合 JDK1.5之后,可以使用forEach循环迭代集合和数组 练习 使用forEach迭代集合 使用foeEach迭代数组 举例 跳过LinkedHashSet 先掌握整体的集合框架,跳过这部分,到周六再做研究 Comparable 接口 java.lang.Comparable 此接口强行对实现它的每个类的对象进行整体排序 此排序被称为该类的自然排序 类的 compareTo 方法被称为它的自然比较方法。 实现此接口的对象列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行自动排序。 实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器。 继承方法 public interface ComparableT T : 可以与此对象进行比较的那些对象的类型 public class Student implements ComparableStudent{//...} Comparable 接口 注意 对于类 C 的每一个 e1 和 e2 来说,当且仅当 (pareTo((Object)e2) == 0) 与 e1.equals((Object)e2) 具有相同的布尔值时,类C 的自然排序才叫做与 equals 一致。 null 不是任何类的实例,即使 e.equals(null) 返回 false,pareTo(null) 也会抛出 NullPointerException。 强烈推荐(虽然不是必需的)使自然排序与 equals 一致。 这是因为在使用其自然排序与 equals 不一致的元素(或键)时没有显式比较器的有序集合(和有序映射表)行为表现“怪异”。 尤其是,这样的有序集合(或有序映射表)违背了根据 equals 方法定义的集合(或映射表)的常规协定。 练习 - 使用Comparable 写一个学生类 Student 其中属性有id、name、age、score 继承 Comparable 接口 重写 equals 方法:id相等即认为是同一
文档评论(0)