第8童的的集合框架 Touuspspuaip
第 8 章 Java的集合框架
主要内容 8.1集合API 8.2 Collection Iterator ·8.2.1 Collection接口 8.2.2迭代器 Iterator 8.3List、 Linkedlist与 ArrayList 8.3.1List接口 8.3.2 LinkedList与 ArrayList类 8.4Set、 Sortedset、 Hashset与 Treeset ·8.4.1set和 Sorted set接口 8.4.2 Hashset、 Treeset和 in kedhashset类 n8.5Map、 SortedMap接口及其实现类 ·8.5.1Map接口 8.5.2 SortedMap接口 ·8.5.3 HashMap、 TreeMap和 Linked Map等实现类 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 2 主要内容 ◼ 8.1 集合API ◼ 8.2 Collection与Iterator • 8.2.1 Collection接口 • 8.2.2 迭代器Iterator ◼ 8.3 List、LinkedList与ArrayList • 8.3.1 List接口 • 8.3.2 LinkedList与ArrayList类 ◼ 8.4 Set、SortedSet、HashSet与TreeSet • 8.4.1 Set和SortedSet接口 • 8.4.2 HashSet、TreeSet和LinkedHashSet类 ◼ 8.5 Map、SortedMap接口及其实现类 • 8.5.1 Map接口 • 8.5.2 SortedMap接口 • 8.5.3 HashMap、TreeMap和LinkedHashMap等实现类
8.1集合AP
8.1 集合API
ava.util包中的集合框架 Collection Abstract collection Set List abstractlist SortedSet Hash Set Array list TreeSet Abstractsequentiallist LinkedhashSet Linkedlist Iterator ap Abstract Sortedmat Listiterator HashMap 代表接口) TreeMap Weak HashMap LinkedHa 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 4 java.util包中的集合框架
ava.util包中的主要接口 Collection接口 集合的根接口。提供诸如add、 remove、size、 to Array和 iterator等方法 set接 有重复元素的集合,元素的存储没有任何特定的顺序,它扩展了 ollection接口, 使用自己内部的一个排列机制 Sorted set接口 扩展Set接口,按元素排列到集合 扩展 Collection接口,允许重复,以元素安插的次序来放置元素,不会重新排列。 nMap接口 是一组成对的关键字一值(Key- value pairs对象。Map中不能有重复的关键字,它 拥有自己的内部排列机制,从关键字到至多一个对应值到映射 SortedMap接口 扩展Map接口,按关键字排序到Map Iterator接口 用于对象到接口,这些对象每次从一个集合上返回一个元素。这是由 Collection接口的 terator方法返回的对象的类型 ListIterator接口 s对象的 terator,这个对象加入了与Ls相关的方法。这是由Lst接口的 stiterator方法返回的对象类型。 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 5 java.util包中的主要接口 ◼ Collection接口 集合的根接口。提供诸如add、remove、size、toArray和iterator等方法。 ◼ Set接口 一个没有重复元素的集合,元素的存储没有任何特定的顺序,它扩展了Collection接口, 使用自己内部的一个排列机制。 ◼ SortedSet接口 扩展Set接口,按元素排列到集合。 ◼ List接口 扩展Collection接口,允许重复,以元素安插的次序来放置元素,不会重新排列。 ◼ Map接口 是一组成对的关键字-值(Key-value pairs)对象。Map中不能有重复的关键字,它 拥有自己的内部排列机制,从关键字到至多一个对应值到映射。 ◼ SortedMap接口 扩展Map接口,按关键字排序到Map。 ◼ Iterator接口 用于对象到接口,这些对象每次从一个集合上返回一个元素。这是由Collection接口的 iterator方法返回的对象的类型。 ◼ ListIterator接口 List对象的Iterator,这个对象加入了与List相关的方法。这是由List接口的 listIterator方法返回的对象类型
java.U包中的主要类 Hashset类 用散列表实现的set,通常比较适用于那些对内容对规模比较敏感对搜索、插入、删 Tree Set类 使用平衡二叉树实现的 Sortedset,搜索或者修改比 Hash set慢,但是它保持元素有 Arraylist类 使用 实现等List,如果列表比较大,那么,插入或者删除一个接近于开始处大 元素的代价蒋会很大,但是,创建的开销相对小一些,并且随机访问也会 ■ Linkedlist类 实现List的双向链表,在任何规模下,修改所花代价相当小,但是,随机访问是很 慢的。它对队列很有用 a HashMap类 个实现Map对散列表,它是非常有用的集合,查询与插入所花时间比较少 TreeMap类 叉树,通过关键字保持元素有序的 SortedMap实现。对于那些需要通过关 键字进行快速查询的有序数据集有用 WeakHashMap类 通过弱引用对象引用关键字的实现Map的散列表,它只在一些有限的情况下有用 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 6 java.util包中的主要类 ◼ HashSet类 使用散列表实现的Set,通常比较适用于那些对内容对规模比较敏感对搜索、插入、删 除等操作。 ◼ TreeSet类 使用平衡二叉树实现的SortedSet,搜索或者修改比HashSet慢,但是它保持元素有 序。 ◼ ArrayList类 使用可变数组实现等List,如果列表比较大,那么,插入或者删除一个接近于开始处大 元素的代价将会很大,但是,创建的开销相对小一些,并且随机访问也会快一些。 ◼ LinkedList类 一个实现List的双向链表,在任何规模下,修改所花代价相当小,但是,随机访问是很 慢的。它对队列很有用。 ◼ HashMap类 一个实现Map对散列表,它是非常有用的集合,查询与插入所花时间比较少。 ◼ TreeMap类 使用平衡二叉树,通过关键字保持元素有序的SortedMap实现。对于那些需要通过关 键字进行快速查询的有序数据集有用。 ◼ WeakHashMap类 通过弱引用对象引用关键字的实现Map的散列表,它只在一些有限的情况下有用
82 Collection与 Iterator
8.2 Collection与Iterator
Collection接口 package java. util public interface Collection t int size o; boolean isEmpty o: boolean contains(object o); Iterator iterator( objectl toArray Object[] toArray(object a[]) boolean add(object o); boolean remove(object o) boolean containsAll ( Collection c) boolean addAll( collection c); boolean removeAll( Collection c); boolean retainAll( Collection c); void clear: boolean equals(object o) int hashCode( 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 8 Collection接口 package java.util; public interface Collection { int size(); boolean isEmpty(); boolean contains(Object o); Iterator iterator(); Object[] toArray(); Object[] toArray(Object a[]); boolean add(Object o); boolean remove(Object o); boolean containsAll(Collection c); boolean addAll(Collection c); boolean removeAll(Collection c); boolean retainAll(Collection c); void clear(); boolean equals(Object o); int hashCode(); }
单元素添加、删除操作 boolean add(object o) 先确定集合是否包含有对象O,如果需要添加该对 象则返回true。如果集合允许重复,add方法总 是返回true。如果不允许重复,并已经有一个相 等的元素在集合中,则add方法返回 false。 boolean remove(object o) 如果集合中有与O相匹配的对象,则删除对象O 并返回true;反之返回fase。如果O为null,并 且集合中也有一个元素为nu,也返回true 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 9 单元素添加、删除操作 ◼ boolean add(Object o) 先确定集合是否包含有对象o,如果需要添加该对 象则返回true。如果集合允许重复,add方法总 是返回true。如果不允许重复,并已经有一个相 等的元素在集合中,则add方法返回false。 ◼ boolean remove(Object o) 如果集合中有与o相匹配的对象,则删除对象o, 并返回true;反之返回false。如果o为null,并 且集合中也有一个元素为null,也返回true
查询操作 int size 返回当前集合中元素的数量 a boolean is empty 判断集合中是否有任何元素。 boolean contains(object o) 查找集合中是否含有对象O Iterator iterator 返回一个迭代器,用来访问集合中的各个 元素。 2021/2/20 java面向对象程序设计教程
2021/2/20 Java面向对象程序设计教程 10 查询操作 ◼ int size() 返回当前集合中元素的数量。 ◼ boolean isEmpty() 判断集合中是否有任何元素。 ◼ boolean contains(Object o) 查找集合中是否含有对象o。 ◼ Iterator iterator() 返回一个迭代器,用来访问集合中的各个 元素