一、集合(一)概述 Collection(有时候也叫container)是一个简单的对象,它把多个元素组成一个单元。集合可以用来存储、检索、 操作、通信。通常情况下,集合代表了一个自然数据项,比如一组手牌(牌的集合)、邮件文件夹(邮件的集合)、电 话目录(姓名和电话的映射) 集合是用于存放对象的容器 可以存放任意类型 集合的长度可变 注意:集合中不可以存放基本数据类型 (二)集合体系对对象存放的不同,形成了不同的容器,不同的容器,内部结构也不同。 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsBA60.tmp.jpg Collection [add/addAll、remove/removeAll、clear、contains/containsAll、isEmpty、size、 iterator、retainAll取交集、 |--List 有序、重复、索引 |--ArrayList 数组结构 index |--LinkedList 链表结构 first/last |--Vector 数组结构,同步,枚举迭代 |--Set 无序、唯一 |--HashSet 哈希表结构, hashCode()、equals() |--LinkedHashSet 唯一,有序 |--TreeSet 二叉树结构 Map: 键值集合[键就是Set集合 [put、putAll、clear、remove、containsKey、containsValue、isEmpty、 get、size、keySet、entrySet、 |--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判断该值是否与传入的值相同。 存储自定义对象 一般需要覆盖hashCode和equals方法 删除ArrayList集合中的元素,是根据equals判断的 删除HashSet集合中的元素,是根据hashCode、equals来判断的
|