A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 周发建 中级黑马   /  2016-3-25 14:42  /  497 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、集合(一)概述
Collection(有时候也叫container)是一个简单的对象,它把多个元素组成一个单元。集合可以用来存储、检索、
操作、通信。通常情况下,集合代表了一个自然数据项,比如一组手牌(牌的集合)、邮件文件夹(邮件的集合)、电
话目录(姓名和电话的映射)
集合是用于存放对象的容器
可以存放任意类型
集合的长度可变
注意:集合中不可以存放基本数据类型
(二)集合体系
对对象存放的不同,形成了不同的容器,不同的容器,内部结构也不同。
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsBA60.tmp.jpg
Collection
                        [add/addAllremove/removeAllclearcontains/containsAllisEmptysize
                                iteratorretainAll取交集、
                        |--List 有序、重复、索引
                                |--ArrayList        数组结构  index
                                |--LinkedList        链表结构  first/last
                                |--Vector                数组结构,同步,枚举迭代
                        |--Set 无序、唯一
                                |--HashSet        哈希表结构, hashCode()equals()
                                        |--LinkedHashSet        唯一,有序
                                |--TreeSet        二叉树结构
Map: 键值集合[键就是Set集合
                        [putputAllclearremovecontainsKeycontainsValueisEmpty
                                getsizekeySetentrySet
                        |--HashMap
                                |--LinkedHashMap
                        |--TreeMap
                        |--Hashtable
                                |--Properties  结合IO使用
(三)迭代器Iterator
迭代器的具体实现要根据集合内部结构来实现,所以就需要把迭代器的实现定义在集合的内部
内部类实现Iterator接口
调用集合中的迭代方法获取迭代器对象
Iterator it = cll.iterator();
hasNext(); --- 判断迭代器中有没有迭代的对象
next() --- 返回迭代的下一个对象
List独有的迭代方式
ListIterator lt = list.listIterator(); 可以在迭代的过程中有更多的操作
Add(E)        --- 添加
Remove() --- 移除
Set(E) --- 替换
nextIndex() ---下一个索引
previousIndex() --- 上一个索引
hasNext() --- 判断有否下一个
Next() --- 下一个
Previous() --- 上一个
(四)HashSet
先用hashCode确定位置,如果位置上有值,就再用equals判断该值是否与传入的值相同。
存储自定义对象
一般需要覆盖hashCodeequals方法
删除ArrayList集合中的元素,是根据equals判断的
删除HashSet集合中的元素,是根据hashCodeequals来判断的

您需要登录后才可以回帖 登录 | 加入黑马