JDK中提供了一系列特殊的類,這些類中可以存儲任意類型的對象,並且長度可變,統稱爲集合。
這些類都位於java.util包中,在使用時一定要注意導包的問題,否則會出現異常。
集合按照其存儲結構可以分爲兩大類,即單列集合Collection和雙列集合Map,這兩種集合的特點具體如下:
-
Collection:單列集合的根接口,用於存儲一系列符合規則的某種元素,它有兩個重要的的子接口,分別是List和Set。其中,List的特點是元素有序、元素可重複。Set的特點是元素無序並且不可重複。List接口的主要實現類有ArrayList和LinkedList,Set接口的主要實現類有HashSet和TreeSet。
- Map:雙列集合的根接口,用存儲具有鍵(Key)值、(Value)映射關係的元素。每個元素都包含一對鍵值,在使用Map集合時可以通過指定的Key找到對應的Value。Map的主要實現類有HashMap、TreeMap和HashTable。
Collection:
Collection是所有單列集合的父接口,因此在Collection中定義了單列集合(List和Set)通用的一些方法,這些方法可用於操作所有的單列集合。
方法聲明 | 功能描述 |
---|---|
boolean add(Object o) | 向集合中添加一個元素 |
boolean addAll(Collection c) | 將指定的Collection中所有的元素添加到該集合 |
void clear() | 刪除該集合中所有元素 |
boolean remove(Object o) | 刪除該集合中指定元素 |
boolean removeAll(Collection c) | 刪除指定集合中的所有元素 |
boolean isEmpty() | 判斷該集合是否爲空 |
boolean contains(Object o) | 判斷該集合中是否包含某個元素 |
boolean containsAll(Collection c) | 判斷該集合中是否包含指定集合中的所有元素 |
Iterator iterator() | 返回該集合元素上進行迭代的迭代器,用於遍歷該集合所有元素 |
int size() | 獲取該集合的元素個數 |
Object[] toArray() | 返回一個包含該集合所有元素的數組 |
... | ... |
List:
List接口繼承自Collection接口,是單列集合的一個重要分支,習慣性地會將實現List接口的對象稱爲List集合。List集合中允許出現重複元素,已線性存儲的方式存儲,可以通過索引號來訪問元素。
List作爲Collection的子接口,不僅繼承了Collection接口的全部方法,還增加了一些通過索引號來操作集合元素的方法。
方法聲明 |
功能描述 |
void add(int index,Object element) | 將元素element插入在List集合的index處 |
boolean addAll(int index,Collection c) | 將集合c所包含的全部元素插入到在List集合的index處 |
Object get(int index) | 返回集合索引號index處的元素 |
Object remove(int index) | 刪除集合索引號index處的元素 |
Object set(int index,Object element) | 將索引index處的元素替換成element對象,並將被替換的元素返回 |
int indexOf(Object o) | 返回對象o在List集合出現的位置索引 |
int lastIndexOf(Object o) | 返回對象o在List集合最後一次出現的位置索引 |
List subList(int fromIndex,int toIndex) | 返回從索引fromIndex到toIndex處所有元素集合成的子集合,前開後閉 |
List接口下的所有集合容器都擁有索引(index),因此List集合不僅可以通過迭代器去遍歷,還可以通過索引號來遍歷,List集合還提供了一種特有的迭代器ListIterator。
Iterator(迭代器)只能從前往後遍歷集合,一旦遍歷結束,迭代器的隱式光標就會位於集合的最後一個元素的後面,此迭代器就無法再對集合進行遍歷。而ListIterator不僅可以對集合進行從前往後的遍歷,還可以從後往前遍歷集合,同時還提供了對集合的增刪改查方法。
未完。。。待補充。。。如若以往請提醒一下。