Java 汇合体系
- Set(接口):代表无序、不可反复的汇合
- List(接口):代表有序、反复的汇合
- Map(接口):代表具备映射关系的汇合
- Queue(接口):代表队列汇合
汇合类和数组区别
- 数组元素既能够是根本类型的值,也能够是对象(实际上保留的是对象的援用变量)。
- 汇合里只能保留对象(实际上保留的是对象的援用变量,但通常习惯认为汇合里保留的是对象)
Java 的汇合类次要由两个 接口 派生而出,他们是 Java 汇合框架的根接口,这两个接口又蕴含了一些子接口或实现类。
- Collection(接口)
- Map(接口)
UML 关系图如下所示
PantUML 语法
A <|-- B // B 继承 A
C <|... D // D 实现了 C
Collection
@startuml
interface Iterable{ }
interface Collection{ }
interface Set{ }
interface Queue{ }
interface List{ }
interface SortedSet{ }
class HashSet{ }
abstract AbstractSet{ }
abstract AbstractCollection{ }
class ArrayList{ }
abstract class AbstractList{ }
class Vector{ }
interface Deque{ }
class PriorityQueue{ }
abstract class AbstractQueue{ }
class TreeSet{ }
interface NavigableSet{ }
class LinkedHashSet{ }
class LinkedList{ }
abstract class AbstractSequentialList{ }
class Stack{ }
class ArrayDeque{ }
Iterable <|-- Collection
Collection <|-- Set
Collection <|-- Queue
Collection <|-- List
Set <|-- SortedSet
AbstractSet <|-- HashSet
Set <|.. HashSet
AbstractCollection <|-- AbstractSet
Set <|.. AbstractSet
Collection <|.. AbstractCollection
AbstractList <|-- ArrayList
List <|.. ArrayList
AbstractCollection <|-- AbstractList
List <|.. AbstractList
AbstractList <|-- Vector
List <|.. Vector
Queue <|-- Deque
AbstractQueue <|-- PriorityQueue
AbstractCollection <|-- AbstractQueue
Queue <|.. AbstractQueue
AbstractSet <|-- TreeSet
NavigableSet <|.. TreeSet
SortedSet <|-- NavigableSet
HashSet <|-- LinkedHashSet
Set <|.. LinkedHashSet
AbstractSequentialList <|-- LinkedList
List <|.. LinkedList
AbstractList <|-- AbstractSequentialList
Vector <|-- Stack
AbstractCollection <|-- ArrayDeque
Deque <|.. ArrayDeque
@enduml
Map
@startuml
interface Map{ }
class HashMap{ }
abstract class AbstractMap{ }
class Hashtable{ }
abstract class Dictionary{ }
interface SortedMap{ }
class LinkedHashMap{ }
class Properties{ }
class TreeMap{ }
interface NavigableMap{ }
AbstractMap <|-- HashMap
Map <|.. HashMap
Map <|.. AbstractMap
Dictionary <|-- Hashtable
Map <|.. Hashtable
Map <|-- SortedMap
HashMap <|-- LinkedHashMap
Map <|.. LinkedHashMap
Hashtable <|-- Properties
AbstractMap <|-- TreeMap
NavigableMap <|.. TreeMap
SortedMap <|-- NavigableMap
@enduml
对于 Set、List、Queue、Map 四种汇合,最罕用的别离是:HashSet、TreeSet、ArrayList、LinkedList、ArrayDeque、HashMap、TreeMap。