集合的由來
數(shù)組長度是固定,如果要改變數(shù)組的長度需要創(chuàng)建新的數(shù)組將舊數(shù)組里面的元素拷貝過去使兔,使用起來不方便速警。
java給開發(fā)者提供了-些集合類,能夠存儲任意長度的對象菩混,長度可以隨著元素的增加而增加隨著元素的減少而減少,使用起來方便- -些蒸苇。
集合繼承體系圖
java提供了一-些集合類,這些集合類分別適用于不同的場景吮旅,下面是常用的一-些集合基礎(chǔ)體系圖溪烤。
里面的Collection是接口,下面的List庇勃、Set氛什、 Queue也都是接口,并且繼承了這個Collection匪凉。最下面的ArrayList枪眉、LinkedList、 Vector再层、 HashSet贸铜、 TreeSet堡纬、 PriorityQueue都是他們的實現(xiàn)類。
集合類的一些特點
List:里面存放的數(shù)據(jù)是有順序的蒿秦,可以存放重復(fù)的數(shù)據(jù)烤镐。
Set:里面存放的數(shù)據(jù)是沒有順序的,不能存放重復(fù)的數(shù)據(jù)棍鳖。
Queue:是- -個隊列炮叶,里面的數(shù)據(jù)是先進先出,可以存放重復(fù)的數(shù)據(jù)渡处。
數(shù)組和集合的區(qū)別
????區(qū)別1:
????????■數(shù)組既可以存儲基本數(shù)據(jù)類型又可以存儲引用數(shù)據(jù)類型基本數(shù)據(jù)類型存儲的是值引用數(shù)據(jù)類型存儲的是地址值
????????■集合只能存儲引用數(shù)據(jù)類型(對象)镜悉,如果存儲基本數(shù)據(jù)類型時,會自動裝箱變成相應(yīng)的包裝類
????■區(qū)別2:
????????■數(shù)組長度是固定的,不能自動增長
????????■集合的長度的是可變的,可以根據(jù)元素的增加而自動增長
public class Col lectionTest01 {
????public static void main (String[] args) {
????????????Collection C = new ArrayList() ;
????????????c.add("a") ;
????????????c.add("b") ;
????????????c.add("C") ;
????????????c.add("d") ;
????????????/ /獲取集合的大小
????????????System. out.println(c.size()) ;
????????????System. out.println(c) ; / /在ArrayList的爺爺類AbstractCollection中重寫的tostring方法
????????????C.remove ("b") ;
????????????/ /System. out.println(c) ;
? ??????????//將集合轉(zhuǎn)換為數(shù)組医瘫,然后進行遍歷
????????????object[] 0 = C. toArray() ;
????????????for (int i=0; i<o. length; i++) {
????????????System. out. println(o[i]) ;
}
? ? ? ? ? ? ?/ /清空集合里面的元素
? ? ? ? ? ? ? ?c.clear() ;
????????????/ /System. out.println(C) ;
? ? ? ? ? ?//判斷集合中是否包含傳入的元素
? ? ? ? ? ?System. out. println (C. contains ("b")) ;
? ?????????//判斷集合里面是否有元素
? ? ? ? ? ?Sys tem. out. println (C. isEmpty());
}
}