admin管理员组文章数量:1032836
集合层次结构
在前面的教程中,我们已经通过实时示例介绍了 Java 集合框架的常见的类型,现在是时候作个总结了
Java 中的集合层次结构
整个集合框架的层次结构由四个核心接口组成,它们分别是Collection, List, Set, Map;以及两个名为 SortedSet 和 SortedMap 的专用接口进行排序。
集合框架的所有接口和类都位于 java.util 包中。Java 集合层次结构的示意图如下图所示。
e➝ 扩展,I➝ 实现
Extends:Extends 是一个关键字,用于处理两个类和两个接口之间的继承。
Implements:Implements 是用于处理类和接口之间继承的关键字。
Java 中的集合接口
集合框架的基本接口是Collection 接口,它是 API(应用程序编程接口)中所有集合的根接口。
它位于 java 中集合层次结构的顶部。它提供了在集合中添加和删除元素的基本操作。
Collection 接口扩展了Iterable 接口。可迭代接口只有一个称为 iterator() 的方法。迭代器方法的功能是返回迭代器对象。使用此迭代器对象,我们可以迭代集合的元素。
List, Queue, Set 这三个组件扩展自Collection 接口。Collection 接口并不继承自map 接口。
List 接口
此接口表示元素的集合,其元素按顺序排列。
List 维护元素的顺序意味着保留我们添加元素的顺序,以及我们在检索元素时将获得的相同顺序。
我们可以在任何位置将元素插入到List中。该List允许在 Java 中存储重复的元素。
ArrayList、vector 和 LinkedList 是实现List接口的三个具体子类。
Set 接口
此接口表示包含唯一元素的元素集合。即,它用于存储唯一元素的集合。
Set接口在存储元素和检索时不保持任何顺序,我们可能不会得到与放置元素相同的顺序。集合中的所有元素可以按任意顺序排列。
Set 不允许任何重复元素。 HashSet,LinkedHashSet,TreeSet 类实现 set 接口,sorted 接口扩展 set 接口。
可以使用Iterator进行迭代,但不能使用ListIterator进行迭代。
SortedSet 接口
此接口扩展了一个Set ,该集合的迭代器根据元素的自然顺序横向排列。
TreeSet实现sorted 接口。
Queue 接口
队列是一个有序的同质元素组,其中新元素添加在一端(后),元素从另一端(前)移除。就像在超市或任何商店排队一样。
此接口代表一种特殊类型的列表,其元素仅从头部删除。
LinkedList、Priority queue(优先级队列)、ArrayQueue、Priority Blocking Queue(优先级阻塞队列)和Linked Blocking Queue(链接阻塞队列)是实现队列接口的具体子类。
Deque 接口
deque(双端队列)是队列接口的子接口。
此接口已添加到 Java SE 6 的集合框架中。
Deque 接口扩展了queue 接口,并使用其方法实现 deque。Deque 接口的层次结构如下图所示。
它是元素的线性集合,可以从任何一端插入和删除元素。也就是说,它支持在实现它的类的对象两端插入和删除。
LinkedList 和 ArrayDeque 类实现了 Deque 接口。
Map 接口
Map 接口不被collection 接口继承。它表示一个对象,该对象以键/值对的形式存储和检索元素,它们在 Map 中的位置由键确定。
Map 接口的层次结构如下图所示。
Map 使用哈希技术来存储键值对。
它不允许存储重复的键,但允许重复的值。
HashMap,HashTable,LinkedHashMap,TreeMap类实现Map接口。
SortedMap接口
此接口表示一个 Map,其元素按其自然顺序存储。它扩展了 Map 接口,而该接口又由 TreeMap 类实现。
Java 中的集合接口方法
Collection接口总共包含 15 种用于操作集合中元素的方法。它们如下:
1. add():此方法用于在集合中添加或插入元素。add() 方法的一般语法如下:
代码语言:javascript代码运行次数:0运行复制add(Object element) : boolean
如果成功地将元素添加到集合中,它将返回 true。否则返回 false,如元素已存在但集合不允许重复项时。
2. addAll():此方法将Collection中的元素添加到当前的Collection中。如果添加元素,则返回 true,否则返回 false。此方法的一般语法如下:
代码语言:javascript代码运行次数:0运行复制addAll(Collection c) : boolean
3. clear():此方法清除或删除集合中的所有元素。此方法的一般形式如下:
代码语言:javascript代码运行次数:0运行复制clear() : void
此方法不返回任何内容。
4. contains():它用于检查元素在集合中是否存在。也就是说,它用于搜索元素。contains方法的一般情况如下:
代码语言:javascript代码运行次数:0运行复制contains(Object element) : boolean
如果元素存在,则此方法返回 true,否则为 false。
5. containsAll():此方法检查指定的元素集合是否存在。如果调用集合包含所有指定的元素,则返回 true,否则返回 false。一般语法如下:
代码语言:javascript代码运行次数:0运行复制containsAll(Collection c) : boolean
6. equals():它检查与另一个对象的相等性。一般形式如下:
代码语言:javascript代码运行次数:0运行复制equals(Object element) : boolean
7. hashCode():它返回集合的哈希代码编号。其返回类型为整数。此方法的一般形式为:
代码语言:javascript代码运行次数:0运行复制hashCode() : int
8. isEmpty():如果集合为空,则返回 true。也就是说,如果集合不包含任何元素,则此方法返回 true。
代码语言:javascript代码运行次数:0运行复制isEmpty() : boolean
9.iterator():它返回一个迭代器。一般形式如下:
代码语言:javascript代码运行次数:0运行复制iterator() : Iterator
10. remove():它从集合中删除指定的元素。一般语法如下:
代码语言:javascript代码运行次数:0运行复制remove(Object element) : boolean
如果删除了元素,则此方法返回 true。否则,它将返回 false。
11. removeAll():removeAll() 方法从集合中删除所有元素。如果删除所有元素,则返回 true,否则返回 false。
代码语言:javascript代码运行次数:0运行复制removeAll(Collection c) : boolean
12. retainAll():此方法用于从集合中删除除指定集合之外的所有元素。如果删除所有元素,则返回 true,否则返回 false。
代码语言:javascript代码运行次数:0运行复制retainAll(Collection c) : boolean
13. size():size() 方法返回集合中元素的总数。其返回类型为整数。一般语法如下:
代码语言:javascript代码运行次数:0运行复制size() : int
14. toArray():它以数组的形式返回集合的元素。数组元素是集合元素的副本。
代码语言:javascript代码运行次数:0运行复制toArray() : Object[]
15. Object[ ] toArray():返回一个数组,其中包含调用集合中存储的所有元素。数组元素是集合元素的副本。
代码语言:javascript代码运行次数:0运行复制toArray(Object array[]) : Object[]
Java 中的Collections 类
collections 类实现collection 接口。它们是在java.util包中定义的。一部分类提供了可以按原样使用的完整实现,
另一部分是抽象的,提供可用于创建具体集合的基本实现。下面简要概述了每个具体的集合类。
1. AbstractCollection:它实现了大部分的collection 接口。它是所有具体collection 类的超类。
2. AbstractList:它扩展了 AbstractCollection 并实现了大部分 List 接口。
3. AbstractQueue:它扩展了AbstractCollection 并实现了queue 接口。
4. AbstractSequentialList:它扩展了AbstractList 并使用顺序来访问元素。
5. AbstractSet:扩展 AbstractCollection 并实现大部分 set 接口。
6. ArrayList:它通过扩展AbstractList来实现一个动态数组。
7. EnumSet:扩展AbstractSet 以用于枚举元素。
8. HashSet:扩展AbstractSet 以用于哈希表。
9. LinkedHashSet:扩展 HashSet 以允许插入顺序迭代。
10. LinkedList:通过扩展AbstractSequentialList来实现链表。
11. AbstractSequentialList:扩展AbstractQueue 以支持基于优先级的队列。
12. TreeSet:扩展AbstractSet 并实现 SortedSet 接口。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2009-03-05,如有侵权请联系 cloudcommunity@tencent 删除集合接口java存储队列集合层次结构
在前面的教程中,我们已经通过实时示例介绍了 Java 集合框架的常见的类型,现在是时候作个总结了
Java 中的集合层次结构
整个集合框架的层次结构由四个核心接口组成,它们分别是Collection, List, Set, Map;以及两个名为 SortedSet 和 SortedMap 的专用接口进行排序。
集合框架的所有接口和类都位于 java.util 包中。Java 集合层次结构的示意图如下图所示。
e➝ 扩展,I➝ 实现
Extends:Extends 是一个关键字,用于处理两个类和两个接口之间的继承。
Implements:Implements 是用于处理类和接口之间继承的关键字。
Java 中的集合接口
集合框架的基本接口是Collection 接口,它是 API(应用程序编程接口)中所有集合的根接口。
它位于 java 中集合层次结构的顶部。它提供了在集合中添加和删除元素的基本操作。
Collection 接口扩展了Iterable 接口。可迭代接口只有一个称为 iterator() 的方法。迭代器方法的功能是返回迭代器对象。使用此迭代器对象,我们可以迭代集合的元素。
List, Queue, Set 这三个组件扩展自Collection 接口。Collection 接口并不继承自map 接口。
List 接口
此接口表示元素的集合,其元素按顺序排列。
List 维护元素的顺序意味着保留我们添加元素的顺序,以及我们在检索元素时将获得的相同顺序。
我们可以在任何位置将元素插入到List中。该List允许在 Java 中存储重复的元素。
ArrayList、vector 和 LinkedList 是实现List接口的三个具体子类。
Set 接口
此接口表示包含唯一元素的元素集合。即,它用于存储唯一元素的集合。
Set接口在存储元素和检索时不保持任何顺序,我们可能不会得到与放置元素相同的顺序。集合中的所有元素可以按任意顺序排列。
Set 不允许任何重复元素。 HashSet,LinkedHashSet,TreeSet 类实现 set 接口,sorted 接口扩展 set 接口。
可以使用Iterator进行迭代,但不能使用ListIterator进行迭代。
SortedSet 接口
此接口扩展了一个Set ,该集合的迭代器根据元素的自然顺序横向排列。
TreeSet实现sorted 接口。
Queue 接口
队列是一个有序的同质元素组,其中新元素添加在一端(后),元素从另一端(前)移除。就像在超市或任何商店排队一样。
此接口代表一种特殊类型的列表,其元素仅从头部删除。
LinkedList、Priority queue(优先级队列)、ArrayQueue、Priority Blocking Queue(优先级阻塞队列)和Linked Blocking Queue(链接阻塞队列)是实现队列接口的具体子类。
Deque 接口
deque(双端队列)是队列接口的子接口。
此接口已添加到 Java SE 6 的集合框架中。
Deque 接口扩展了queue 接口,并使用其方法实现 deque。Deque 接口的层次结构如下图所示。
它是元素的线性集合,可以从任何一端插入和删除元素。也就是说,它支持在实现它的类的对象两端插入和删除。
LinkedList 和 ArrayDeque 类实现了 Deque 接口。
Map 接口
Map 接口不被collection 接口继承。它表示一个对象,该对象以键/值对的形式存储和检索元素,它们在 Map 中的位置由键确定。
Map 接口的层次结构如下图所示。
Map 使用哈希技术来存储键值对。
它不允许存储重复的键,但允许重复的值。
HashMap,HashTable,LinkedHashMap,TreeMap类实现Map接口。
SortedMap接口
此接口表示一个 Map,其元素按其自然顺序存储。它扩展了 Map 接口,而该接口又由 TreeMap 类实现。
Java 中的集合接口方法
Collection接口总共包含 15 种用于操作集合中元素的方法。它们如下:
1. add():此方法用于在集合中添加或插入元素。add() 方法的一般语法如下:
代码语言:javascript代码运行次数:0运行复制add(Object element) : boolean
如果成功地将元素添加到集合中,它将返回 true。否则返回 false,如元素已存在但集合不允许重复项时。
2. addAll():此方法将Collection中的元素添加到当前的Collection中。如果添加元素,则返回 true,否则返回 false。此方法的一般语法如下:
代码语言:javascript代码运行次数:0运行复制addAll(Collection c) : boolean
3. clear():此方法清除或删除集合中的所有元素。此方法的一般形式如下:
代码语言:javascript代码运行次数:0运行复制clear() : void
此方法不返回任何内容。
4. contains():它用于检查元素在集合中是否存在。也就是说,它用于搜索元素。contains方法的一般情况如下:
代码语言:javascript代码运行次数:0运行复制contains(Object element) : boolean
如果元素存在,则此方法返回 true,否则为 false。
5. containsAll():此方法检查指定的元素集合是否存在。如果调用集合包含所有指定的元素,则返回 true,否则返回 false。一般语法如下:
代码语言:javascript代码运行次数:0运行复制containsAll(Collection c) : boolean
6. equals():它检查与另一个对象的相等性。一般形式如下:
代码语言:javascript代码运行次数:0运行复制equals(Object element) : boolean
7. hashCode():它返回集合的哈希代码编号。其返回类型为整数。此方法的一般形式为:
代码语言:javascript代码运行次数:0运行复制hashCode() : int
8. isEmpty():如果集合为空,则返回 true。也就是说,如果集合不包含任何元素,则此方法返回 true。
代码语言:javascript代码运行次数:0运行复制isEmpty() : boolean
9.iterator():它返回一个迭代器。一般形式如下:
代码语言:javascript代码运行次数:0运行复制iterator() : Iterator
10. remove():它从集合中删除指定的元素。一般语法如下:
代码语言:javascript代码运行次数:0运行复制remove(Object element) : boolean
如果删除了元素,则此方法返回 true。否则,它将返回 false。
11. removeAll():removeAll() 方法从集合中删除所有元素。如果删除所有元素,则返回 true,否则返回 false。
代码语言:javascript代码运行次数:0运行复制removeAll(Collection c) : boolean
12. retainAll():此方法用于从集合中删除除指定集合之外的所有元素。如果删除所有元素,则返回 true,否则返回 false。
代码语言:javascript代码运行次数:0运行复制retainAll(Collection c) : boolean
13. size():size() 方法返回集合中元素的总数。其返回类型为整数。一般语法如下:
代码语言:javascript代码运行次数:0运行复制size() : int
14. toArray():它以数组的形式返回集合的元素。数组元素是集合元素的副本。
代码语言:javascript代码运行次数:0运行复制toArray() : Object[]
15. Object[ ] toArray():返回一个数组,其中包含调用集合中存储的所有元素。数组元素是集合元素的副本。
代码语言:javascript代码运行次数:0运行复制toArray(Object array[]) : Object[]
Java 中的Collections 类
collections 类实现collection 接口。它们是在java.util包中定义的。一部分类提供了可以按原样使用的完整实现,
另一部分是抽象的,提供可用于创建具体集合的基本实现。下面简要概述了每个具体的集合类。
1. AbstractCollection:它实现了大部分的collection 接口。它是所有具体collection 类的超类。
2. AbstractList:它扩展了 AbstractCollection 并实现了大部分 List 接口。
3. AbstractQueue:它扩展了AbstractCollection 并实现了queue 接口。
4. AbstractSequentialList:它扩展了AbstractList 并使用顺序来访问元素。
5. AbstractSet:扩展 AbstractCollection 并实现大部分 set 接口。
6. ArrayList:它通过扩展AbstractList来实现一个动态数组。
7. EnumSet:扩展AbstractSet 以用于枚举元素。
8. HashSet:扩展AbstractSet 以用于哈希表。
9. LinkedHashSet:扩展 HashSet 以允许插入顺序迭代。
10. LinkedList:通过扩展AbstractSequentialList来实现链表。
11. AbstractSequentialList:扩展AbstractQueue 以支持基于优先级的队列。
12. TreeSet:扩展AbstractSet 并实现 SortedSet 接口。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2009-03-05,如有侵权请联系 cloudcommunity@tencent 删除集合接口java存储队列本文标签: 集合层次结构
版权声明:本文标题:集合层次结构 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/jiaocheng/1747965989a2234795.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论