复习集合容器类.ppt
《复习集合容器类.ppt》由会员分享,可在线阅读,更多相关《复习集合容器类.ppt(33页珍藏版)》请在三一文库上搜索。
1、复习-集合容器类,1,复习要求,集合容器类概念 Hashcode和equals方法 集合容器中主要接口 Set List Map Iterator Comparable 集合容器中主要类 ArrayList LinkedList Vector Stack HashMap HashTable,集合容器,集合是一组聚集在一起且在内存中以特殊方式组织的对象,定义集合对象的类通常称为容器类 三种类型: Set集 集里的对象不按任何特定的方式排列 可以向集中r增加对象,但不能有重复的对象 List序列 序列中的对象以线性方式存储,不需要特殊的顺序 但有头有尾,以任意固定顺序组织,如数组 Map映射 映射
2、的每一项都含有一对对象,键-值 键决定了对象在映射中的存储位置。 映射中的键必须各不相同。,集 列表 映射,集合,重写hashCode和equals方法,涉及到equals()方法和hashCode()方法 集中元素不能重复,需要比较两个对象是否相等 TreeSet和TreeMap要进行比较两个对象, 对于自己定义的类型,需要重写equals()和hashCode()方法以实现自定义的对象相等规则 相等的对象应该具有相等的hashCode值 a.equals(b)是true,则是相等=a.hashcode()= b.hashcode() a.equals(b)是false,则是不相等=a.ha
3、shcode()!= b.hashcode() 如果两个对象的hashCode相同,它们并不一定相同,考试注意,hashCode和equals方法,toString方法都是公共的 下面的写法对这几个方法的重写是无效的 class Fooboolean equals(Object o) 一定要写成 class Foopublic boolean equals(Object o),集合,使用集合时有几种基本操作: 将对象添加到集合 从集合中删除对象 查找一个对象或一组对象是否存在于集合内 从集合中检索对象 遍历集合,逐个查看每个元素,集合容器中主要接口,核心接口 Collection 集合中最顶层
4、的接口 Set 继承自Collection 不允许有重复的元素,用equals方法来区分重复与否 List 继承自Collection 线性的 Map 没有继承自Collection接口 keyvalue SortedSet 继承Set接口 Iterator 迭代接口,可以实现遍历集合中的元素 Comparable 和Comparator 比较接口,Collection,常用方法 boolean add(Object obj) 添加一个Object元素 boolean addAll(Collection c) boolean contains(Object obj) 判断obj是否是调用类集的
5、一个元素(属于) boolean containsAll(Collection c) 判断c是否是调用类集的子集(包含) boolean equals(Collection c) 判断c是否与调用类集相等 int hashCode() 返回调用类集的hash码 Iterator iterator() 返回调用类集的迭代程序,用来遍历元素 boolean removeAll(Collection c) 从调用类集中去掉所有c中包含的元素(差集) boolean retainAll(Collection c) 从调用类集中去掉包含在c中以外的元素(补集) Object toArray() 返回类集
6、的元素组成的数组 void clear() boolean isEmpty() int size(),考试注意,对add(Object obj)方法,可以添加任意Object对象到集合中,但不能直接添加:int,char,double等数据。 可以使用下面的方法实现: ArrayList a=new ArrayList(); a.add(new Integer(1); a.add(new Integer(2);,考试注意,区分Collection和Collections Collections是一个类,有很多有用的静态方法。 而Collection是一个接口。,其他常用接口,Set 没有定义新
7、的方法,元素不重复 List 新增方法 void add(int index,Object obj) 插入点以后的元素将后移 boolean addAll(int index,Collection c) 如果调用列表改变了,返回true,否则返回false Object get(int index) int indexOf(Object obj) 返回obj对象在列表中的索引,不存在返回-1 int lastIndexOf(Object obj) 返回obj在列表中的最后一个实例的下标,不存在返回-1 ListIterator listIterator() ListIterator listI
8、terator(int index) 返回index开始的迭代程序 Object set(int index,Object obj) 对列表index处的值进行修改 List subList(int start,int end) 从start到end-1 Map 不能有相同key,一个key只能映射到一个值 用于插入和删除元素的变换方法 remove(Object key)从 Map 中删除键和关联的值 put(Object key, Object value)将指定值与指定键相关联 clear()从 Map 中删除所有映射 putAll(Map t)将指定 Map 中的所有映射复制到此 ma
9、p,其他常用接口,SortedSet 一类有序的Set集合,实现Comparator接口 常用方法 Comparator comparator() 返回调用排序集合的比较函数,如果改集合使用自然顺序,则返回nul lObject first() 返回被排序集合的第一个元素 SortedSet headSet(Object end) 返回一个包含小于end元素的SortedSet Object last() 返回调用排序集合的最后一个元素 SortedSet subSet(Object start,Object end) 包括从start到end-1 SortedSet tailSet(Obje
10、ct start) 返回包含大于等于start的元素,Iterator接口,迭代接口,可以实现遍历集合中的元素。 常用方法 boolean hasNext() 判断是否有元素 Object next() 如果没有下一个元素则引发NoSuchElementException异常。 void remove() 删除当前元素,如果试图在调用next()方法后调用remove()方法则引发IllegalStateException异常。,迭代器(iterator)的使用,Iterator it=test.iterator(); /test是一个集合的对象 while(it.hasnext() it.n
11、ext();/ 取一个元素 , ,Comparable 和Comparator 接口,比较接口 Comparable 通用的接口,用户可以实现它来完成自己特定的比较 比较固定,和一个具体类相绑定. Comparator 可以看成一种算法的实现,在需要容器集合实现比较功能的时候,实现该接口; 比较灵活,它可以被用于各个需要比较功能的类使用。,Comparable接口,所有可以“排序”的类都实现了Comparable接口,Comparable接口中只有一个方法: public int compareTo(Object obj) 若this=obj,则返回0 若thisobj,则返回正整数 若thi
12、sobj,则返回负整数 实现了Comparable接口的类通过实现compareTo()方法来确定该类对象的排序方式 如果是基本类型的话,可以用封装器类来解决,如int对应Integerfloat对应Float 一般要求: e1.equals(Object)e2)和pareTo(Object)e2)=0具有相同的值,集中主要类,HashSet类 按照哈希算法来存取对象,存取速度比较快. 用对象的equals()方法来区分不同的对象,避免重复 有一个子类LinkedHashSet类,不仅实现了哈希算法,而且实现了链表数据结构(提高插入和删除的效率) 存放的元素相应的类必须要重新定义hashCod
13、e()和equals()方法 保证当两个对象用equals()方法比较的结果为true时,这两个对象的hashcode()方法的返回值相等。 TreeSet类 实现了SortedSet接口,具有排序功能 TreeSet作为有序集,存放的元素相应的类必须自定义排列顺序要实现比较接口Comparable 或者Comparator接口 保证这个类的compareTo()和equals() 方法采用相同的比较规则来比较两个对象是否相等,考试注意,当使用HashSet或者LinkedHashSet时,添加到他们的对象必须重写hashcode和equals方法 当使用TreeSet时,添加到他们的对象必须
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复习 集合 容器
链接地址:https://www.31doc.com/p-2560540.html