標籤:list 查看 功能 xtend 概述 lin 原始碼 array ring
集合介紹
集合,集合是java中提供的一種容器,可以用來儲存多個資料。
在前面的學習中,我們知道資料多了,可以使用數組存放或者使用ArrayList集合進行存放資料。那麼,集合和數組既然都是容器,它們有啥區別呢?
數組的長度是固定的。集合的長度是可變的。集合中儲存的元素必須是引用類型資料
ArrayList集合儲存元素
我們來回顧下,使用ArrayList集合儲存元素並遍曆的過程。
練習一:ArrayList集合儲存5個int類型元素
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(111);
list.add(222);
list.add(333);
list.add(444);
list.add(555);
for(int i=0; i<list.size(); i++){
System.out.println(list.get(i));
}
}
練習二:ArrayList集合儲存5個Person類型元素
public static void main(String[] args) {
ArrayList<Person> list = new ArrayList<Person>();
list.add(new Person("小強"));
list.add(new Person("老王"));
list.add(new Person("小虎"));
list.add(new Person("小澤"));
list.add(new Person("小紅"));
for(int i=0; i<list.size(); i++){
Person p = list.get(i);
System.out.println(p);
}
}
集合的繼承實現關係
查看ArrayList類發現它繼承了抽象類別AbstractList同時實現介面List(有序),而List介面又繼承了Collection介面。Collection介面為最頂層集合介面了。 採集,聚集
原始碼:
interface List extends Collection {
}
public class ArrayList extends AbstractList implements List{
}
這說明我們在使用ArrayList類時,該類已經把所有抽象方法進行了重寫。那麼,實現Collection介面的所有子類都會進行方法重寫。
Collection介面常用的子介面有:List介面、Set介面
List介面常用的子類有:ArrayList類、LinkedList類
Set介面常用的子類有:HashSet類、LinkedHashSet類
Set無序 List 有序
Collection介面概述
既然Collection介面是集合中的頂層介面,那麼它中定義的所有功能子類都可以使用。查閱API中描述的Collection介面。Collection 階層中的根介面。Collection 表示一組對象,這些對象也稱為 collection 的元素。一些 collection 允許有重複的元素,而另一些則不允許。一些 collection 是有序的,而另一些則是無序的。
繼續查閱API,發現Collection介面中很多集合的操作方法,那麼這些方法都具體能做什麼呢?
Collection介面的基本方法
這裡我們不關心具體建立的Collection中的那個子類對象,這裡重點示範的是Collection介面中的方法。
建立集合的格式:
方式1:Collection<元素類型> 變數名 = new ArrayList<元素類型>();
方式2:Collection 變數名 = new ArrayList();
方式1建立的集合,只能儲存<>中指定的元素類型,該方式為常用方式
方式2建立的集合,集合的元素類型預設為Object類型,即任何類型的元素都可以儲存。
示範Collection介面中的方法
//建立集合
Collection coll = new ArrayList();
//1,往集合中添加對象元素。add(E e)方法,E代表建立集合時所指定的資料類型如<String>,那麼,E就代表String類型;建立集合時若沒有指定資料類型,那麼,E就代表Object類型。
coll.add("abc");
coll.add("ef");
coll.add("g");
//把集合列印一下。
System.out.println(coll); //列印結果為:[abc, ef, g]
System.out.println(coll.toString()); //列印結果為:[abc, ef, g]
//2,從集合中刪除元素。remove(Object o)方法
coll.remove("ef");
//刪除後,集合元素為[abc, g]
//3,判斷集合中是否包含指定元素。contains(Object o)方法
System.out.println(coll.contains("abc"));
//列印結果為true
System.out.println(coll.contains("ef"));
//列印結果為false
//4,擷取集合元素個數。size()方法
System.out.println(coll.size());
//列印結果為2
//5,返回包含集合中所有元素的數組。toArray()方法
String[] array = coll.toArray();
//數組中的元素為{"abc", "g"}
//6,清除集合元素。remove()方法
coll.clear();清空的是內容
//清空後,集合元素為[],代表沒有元素
java ->集合