java.util包中提供了一些集合,這些集合又被稱為容器。提到容器不難想到數組,集合與數組的不同之處時,數組的長度是固定的,集合的長度是可變的;數組用來存放基本資料類型的資料,集合用來存放對象的引用。常用的集合有:List集合,set集合和map集合,其中List集合與set集合繼承了Collection接口,各接口還提供了不同的實作類。
Collection接口是層次結構中的根接口。構成Collection的機關稱為元素。Collection接口通常不能直接使用,但該接口提供了添加元素,删除元素,管理資料的方法。由于list接口與set接口都直接繼承了Collection接口,是以這些方法對List和set集合是通用的。
Collection接口
Collection接口的常用方法
方法 功能描述
add(E e) 将制定的對象添加到各集合中
remove(Object o) 将制定的對象從該集合中移除
isEmpty() 傳回Boolean值,用于判斷目前集合是否為空
iterator() 傳回再次Collection的元素上進行疊代的疊代器。用于周遊集合中的對象
size() 傳回int值,擷取該集合中的元素的個數
如何周遊集合中的每個元素呢》
通常周遊集合,都是通過疊代器(iterator)來實作。Collection接口中的iterator()方法可傳回在此Collection進行疊代的疊代器。
public class Collection接口 {
public static void main(String[] args) {
Collection<String>list = new ArrayList<>();//執行個體化集合類對象
list.add("a");
list.add("b");
list.add("c");
Iterator<String>iterator = list.iterator();//建立疊代器
while (iterator.hasNext()){//判斷是否有下一個元素
String str = iterator.next();//擷取集合中的元素
System.out.println(str);
}
}
}
結果:
List集合
List集合包括List接口以及List接口的所有實作類。List集合中的元素允許重複,各元素的順序就是對象插入的順序。類似java數組,使用者可通過使用索引(元素在集合中的位置)來通路集合中的元素。
List接口繼承了Collection接口,是以包含了Collection中的所有方法,是以,List接口還定義了以下兩個方法。
get(int index):擷取指定索引位置的元素
set(int index,Object obj):将集合中指定的索引位置的對象修改為指定的對象
List接口的常用實作類有ArrayList與LinkedList.
ArrayList類實作了可變的數組,允許儲存所有元素,包括null,并可以根據索引位置對集合進行快速的随機通路:缺點是向指定的索引位置插入對象或删除對象的速度較慢。
LinkedList類采用連結清單結構儲存對象。這種結構的優點是便于向集合中插入和删除對象,需要向集合中插入,删除對象時。使用LinkedList類實作的List集合的效率較高;但對于随機通路集合中的對象,使用LinkedList類實作的效率較低。
使用List集合時通常聲明為List類型,可通過不同的實作類來執行個體化集合。
public class List集合 {
public static void main(String[] args) {
List<String>list = new ArrayList<>();//建立集合對象
list.add("a");
list.add("b");
list.add("c");
int i = (int)(Math.random()*(list.size()-1));//獲得0-2之間的随機數
System.out.println("随機擷取數組中的數:"+list.get(i));
list.remove(2);//将指定索引位置的元素從集合中移除
System.out.println("移除後數組中的元素:");
for (int j = 0;j<list.size();j++){
System.out.println(list.get(j));
}
}
}
結構: