天天看點

java collection集合實體類查詢,【Java】基礎23:Collection集合

java collection集合實體類查詢,【Java】基礎23:Collection集合

在Java程式裡面有一個非常重要的概念,叫做容器。

數組就是其中的一種容器,除了數組,還有一種叫做集合。

它們之間有何差別?數組長度固定,不可變,可以存儲任何資料類型,但是存儲的資料類型要一緻。

集合長度可變,隻能存儲引用資料類型(基本資料類型會轉換成對應的引用資料類型,也就是包裝類),存儲的資料類型可以不一緻。

集合按照其儲存結構分為單列集合(Collection)和雙列集合(Map)。

常用的ArrayList類就是一種單列集合。

單列集合之間的繼承體系如下圖:

java collection集合實體類查詢,【Java】基礎23:Collection集合

其中Collection、List、Set都是接口,其他的全部都是具體的實作類。

今天主要學習單列集合Collection。

一、Collection常用方法

Collection是所有單列集合的父接口,根據繼承的原則,也就是說,Collection中的所有方法,其子類是可以直接使用的。

常用的方法有如下幾種:

java collection集合實體類查詢,【Java】基礎23:Collection集合

①add方法:向集合中添加元素。

向collection集合中添加元素必定成功,因為collection集合的元素可以重複,有的集合不能重複添加元素,就會失敗。

②size方法:擷取集合的大小。

也就是一共多少個元素,上圖例子輸出:3。

③remove方法:移除對應的元素。

如果該元素在集合中存在,傳回true,移除成功。

如果該元素在集合中不存在,傳回false,移除失敗。

上圖例子輸出:true。

④contains方法:判斷集合是否包含該元素。

上圖例子輸出:true。

⑤clear方法:清空集合。

将集合中的所有元素清空,但是集合依舊還存在。

若是collection=null,表示不僅元素沒了,集合也沒了。

⑥toArray方法:将集合轉換成數組,因為集合存儲的資料類型不确定,是以傳回的數組隻能是Object數組。

⑦isEmpty方法:判斷集合是否為空。

注意:Collection是沒有索引的,所有它不能根據索引找到對應的元素,是以它才沒有get方法。

那如果要周遊集合将元素一個個列印出來該怎麼辦?

二、疊代器iterator

數組有一個重要的用法叫數組周遊,類似的ArrayList集合也能周遊。

利用for循環語句就能實作,而之是以能實作,是因為它們是自帶索引的。

但是collection集合并沒有索引,是以無法使用for循環将元素周遊,而疊代器的作用就是相當于集合周遊。

疊代器的使用方法如下:

java collection集合實體類查詢,【Java】基礎23:Collection集合

①擷取集合的疊代器:iterator就是疊代器的意思,它是一個接口。

什麼叫疊代呢?

就是同一件事情,不停地重複着做,用中國的一個古典故事解釋,就好比是愚公移山,不停地挖山。

在Java裡面就是查詢這個元素,查到了接着查詢下一個元素,不停地重複。

②既然是不同地重複,那怎麼結束?疊代器中的next方法就是擷取目前元素。

疊代器中的hasNext方法是用來判斷下一個元素是否存在的:如果存在就将目前元素列印出來;如果不存在就結束循環。

三、增強for循環

利用普通for循環周遊集合有一個特點是需要知道索引值,每循環一次将索引加一就能将所有元素都周遊出來。

而增強for循環的作用就是,就算我不知道索引值,我也能周遊集合。

其本質就是疊代器iterator,是以想使用增強for循環有一個前提條件是需要實作iterator這個接口。

Collection這個接口繼承自iterator,故所有的單列集合均能使用增強for循環。

java collection集合實體類查詢,【Java】基礎23:Collection集合

①增強for循環的文法格式:

for(資料類型 變量名:集合對象){}

就可以将其了解成:集合中的所有元素一個一個地指派給前面的那個變量,是以變量名的資料類型要和集合元素的資料類型一緻。

②增強for循環有一個缺點,就是沒法修改各個元素。

是以增強for循環和普通for循環如何選擇?如果隻是檢視集合元素,用增強for;

如果想要修改集合元素,用普通for。

總結:

java collection集合實體類查詢,【Java】基礎23:Collection集合