09_集合类教程范本.pptx

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
集合框架 (时间:4次课,8学时) 第9章 集合框架 9.1 集合概述及API 9.2 Collection接口和Iterator接口 9.3 Set接口及常用实现类 9.4 List接口及常用实现类 9.5 Map接口及常用实现类 9.6 遗留集合类 9.7 排序集合 9.8 集合工具类Collections类 9.9 集合类的线程安全问题 9.1.1 集合概述 集合:Java SE API所提供的一系列类(java.util包内)的实例,可以用于动态存放多个对象。 Java Collections Framework图如下: 9.1.2 集合API Collection接口——声明了一组管理它所存储元素的方法。常用子接口: Set接口:存放的元素不包含重复的集合接口 List接口:存放的元素有序且允许有重复的集合接口 说明: “元素”-对象,实例 “重复”-两个对象通过equals相等 “有序”-元素存入的顺序与取出的顺序相同 Map接口——定义了存储“键(key)-值(value)映射对”的方法。 9.2.1 Collection接口 Collection接口中定义的方法: int size(); 返回此collection中的元素数。 boolean isEmpty(); 判断此collection中是否包含元素。 boolean contains(Object obj); 判断此collection是否包含指定的元素。 boolean contains(Collection? c); 判断此collection是否包含指定collection中的所有元素。 boolean add(E element); 向此collection中添加元素。 boolean addAll(Collection? extends E c);将指定collection中的所有元素添加到此collection中 boolean remove(Object element); 从此collection中移除指定的元素。 boolean removeAll(Collection? c); 移除此collection中那些也包含在指定collection中的所有元素。 void clear(); 移除些collection中所有的元素。 boolean retainAll(Collection? c); 仅保留此collection中那些也包含在指定collection的元素。 Iterator iterator(); 返回在此collection的元素上进行迭代的迭代器。 Object[] toArray(); 把此collection转成数组。 9.2.2 Iterator接口 Iterator对象称作迭代器,用以方便的实现对集合内元素的遍历操作。Iterator接口中定义了如下方法: boolean hasNext(); //判断游标右边是否有元素 Object next() ; //返回游标右边的元素并将游标移动到下一个位置 void remove(); //删除游标左面的元素 凡是能用 Iterator 迭代的集合都可以用JDK5.0中增强的for循环来更简便的遍历。 CollectionString coll = ...; for(String str : coll){ System.out.println(str); } 9.3 Set接口及常用实现类 Set接口介绍 HashSet实现类 LinkedHashSet实现类 9.3.1 Set接口 Set接口没有提供Collection接口额外的方法,但实现Set接口的集合类中的元素是不可重复的。 Set集合与数学中“集合”的概念相对应。 JDK API中所提供的Set集合类常用的有: HashSet LinkedHashSet 9.3.2 HashSet HashSet:不保存元素的存入顺序。 HashSet根据元素的哈希码进行存放,取出时也可以根据哈希码快速找到。 使用示例 Set存放对象的原理 存对象时: 根据每个对象的哈希码值(调用hashCode()获得)用固定的算法算出它的存储索引,把对象存放在一个叫散列表的相应位置(表元)中: 如果对应的位置没有其它元素,就只需要直接存入。 如果该位置有元素了,会将新对象跟该位置的所有对象进行比较(调用equals()),以查看是否已经存在了:还不存在就存放,已经存在就直接使用。 取对象时: 根据对象的哈希码值计算出它的存储索引,在散列表的相应位置(表元)上的元素间进行少量的比较操作就可以找出它。 Set系的集合存、取、删对象都有很高的效率。 对于要存放到Set集合中的对象,对应的类一定要重写equals()和hashC

文档评论(0)

1112111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档