阅读时间: 10分钟
Collection 是一个集合,可以储存一个或多于一个元素的集合。
在Java中,有2个interface可以表示集合,分别是Collection interface (java.util.Collection) 和Map interface (java.util.Map)。
现在就集中介绍Collection interface
Collection的优点:
第一
不变的API,不同Class可以共用相同的API(例如 add(), remove(), contains(), isEmpty(), addAll() 等等)。
第二
减少开发时间,不用重新设计新的collection。
第三
增加程式的速度及质素,由于Collection提供了可靠的数据结构及算法在不同interface。
Collection interface之下有三个 Interface
Set、List与Queue
这三种Interface,可以视为是3种资料结构,各有其不同的特色:
所有类classes (例如ArrayList, LinkedList, Vector等) 都可以透过实作interface来使用interface中的methods。
第一个是Set
是最简单的Collection资料结构,就是集合。Set 唯一的限制是不允许重覆的物件存在。
Set 常用的实作主要有3个:
•LinkedHashSet
保证里面元素存放的顺序与新增时相同。最适合拿来存放由资料库中存取的资料集。
•HashSet
读取特快,但不保证存放元素的顺序。
•TreeSet
依物件大小来决定集合里面的顺序。所以存放于TreeSet中元素必需是(实作) Comparable 的物件。有时候当从自料库中存取的资料必需自行排序时,就会用到。
第二个是List
List比Set多了一个索引编号,而且也允许重覆:
List实作有 ArrayList、LinkedList、Stack等等。
第三种是 Queue
Queue 可以允许先入先出(FIFO / First-In-First-Out)。
即是新加入的元素会在尾部,而移除元素会在头部开始。
Queue实作有LinkedList、ArrayBlockingQueue、PriorityQueue等等。
另外,在Queue interface之下还有一个Deque interface。
有关Deque interface的介绍,可以看我写的另一篇文章 - Java - dequeue的介绍及用法