當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]關(guān)于Java中的集合 集合是什么,為什么要使用集合? 集合是一種容器,集合只存儲對象,不存儲基本屬類型,集合長度可變。在JDK1.2版本開始,出現(xiàn)了集合框架 ? 至于為什么要用集合就涉及到數(shù)據(jù)存儲了。

關(guān)于Java中的集合

集合是什么,為什么要使用集合? 集合是一種容器,集合只存儲對象,不存儲基本屬類型,集合長度可變。在JDK1.2版本開始,出現(xiàn)了集合框架 ? 至于為什么要用集合就涉及到數(shù)據(jù)存儲了。涉及到數(shù)組長度的問題,所以我們比較一下
集合和數(shù)組的區(qū)別: 數(shù)組定長,集合變長 數(shù)組存儲對象,基本類型。 集合只存儲對象 ? //=================================================== 2.如何學(xué)習(xí)集合 既然集合是一種容器。必須要掌握如何將對象存儲到集合中,將對象從集合中獲取出來 ,?存儲對象到集合中,以及了解每個集合同期的特點(diǎn)。
//=================================================== 3.集合框架中頂層接口Collection (目前是,貌似后面的java工程師又給加了Iterable接口。反正不影響)
集合中的方法很多有以下幾種;
? ?add(Object e) 將對象存儲到集合的方法 (最基本的存取方法) ? ?參數(shù)是Object類型,集合存儲對象,存儲什么對象不一定
? ?addAll(Collection c)將一個集合存儲到另一個集合 ? ?存儲的是另一個集合中存儲的對象
? ?clear()清除集合中存儲的所有對象
? ?boolean contains(Object o)判斷一個對象,是否存在于集合中 ? ?集合中是否包含這個對象
? ?boolean containsAll(Collection c)判斷一個集合,是否包含另一個集合 ? ?其實(shí)判斷的是兩個集合中存儲的對象是否完全包含
? ?int size()返回集合中存儲對象的個數(shù)
? ?數(shù)組.length屬性 ? ?字符串.length()方法 ? ?集合.size()方法
? ?boolean isEmpty()當(dāng)集合中的元素的size()==0 結(jié)果返回真
? ?boolean remove(Object o)移除集合中的一個對象,如果移除成功返回真
? ?boolean removeAll(Collection c)移除兩個集合中,相同的對象
? ?boolean retainAll(Collection c)兩個集合取交集 ? ?將coll和coll2兩個集合中相同的對象,保存到coll中,不相同的就舍棄不要 ? ?boolean b = coll.retainAll(coll2); ? ?返回值:調(diào)用者coll集合沒有變化過,結(jié)果就是false ? ?調(diào)用者coll發(fā)生了變化,就是true
我就不貼代碼演示了。在取的過程中會貼代碼。畢竟有存才能取啊。至于其他方法知道就OK。忘記的話可以查API


//=================================================== 4.集合中的存儲對象的取出。 ??就是取出集合中存儲對象的一種方式,遍歷數(shù)組很像。我們這里用的是迭代器
? iterator方法,寫在了Collection接口中,所有的小弟都具備這個方法 ? Iterator iterator() ? Iterator 接口,迭代器接口 iterator返回的是接口的實(shí)現(xiàn)類的對象 ? hasNext()判斷集合中還有沒有可以被取出對象,如果有就返回真 ? next()獲取集合中存儲的對象
? 使用迭代器取出集合中存儲對象的步驟: ? ? 第一步,使用集合中的方法iterator()獲取Iterator接口對象(內(nèi)部類對象),獲取迭代器 ? ? 第二步,使用迭代器對象的hasNext()方法判斷集合中,有沒有對象可以被取出 ? ? 第三步,使用迭代器對象的next()方法,獲取集合中對象
/* ?* 使用迭代器獲取集合中存儲對象 ?* 迭代器創(chuàng)建好,可以使用一次 ?*/
import java.util.*; public class CollectionDemo1 { ?public static void main(String[] args) { ? Collection coll = new ArrayList(); ? coll.add("abc1"); ? coll.add("abc2"); ? coll.add("abc3"); ? ? //獲取迭代器對象,使用集合方法iterator() ? Iterator it = coll.iterator(); ? //判斷集合中是否有對象可以被取出 迭代器方法hasNext() ? while(it.hasNext()){ ? ?//使用迭代器方法Object next()獲取集合中存儲的對象 ? ?Object obj = it.next(); //it.next只能使用一次。 ? ?System.out.println(obj); ? }???? ?} }
? 使用迭代器的過程中,出現(xiàn)了一個異常 ? java.util.ConcurrentModificationException--并發(fā)修改異常 ? 在迭代器迭代集合的過程中,不能使用集合的方法,改變集合的長度?add remove clrea ? 當(dāng)?shù)饕呀?jīng)移動到了最后一位,再次使用next方法獲取,出現(xiàn) ? Exception in thread "main" java.util.NoSuchElementException--沒有元素被取出異常
it.nxet就像當(dāng)于指針的移動。每次使用就會像下移動。所以一次判斷過程中。對于一個集合對象只能使用一次。這個一定要記住。而且迭代過程中不能改變長度。但是內(nèi)容是可以的

迭代器中一共就3個方法。 hasNext() next() 還有一個方法remove()
/* ?* 迭代器一個集合 ?* 如果集合中有abc2這個對象,請你刪除它 ?* 迭代器中的一個方法remove ?* ?* 如果集合中有abc2這個對象,請你添加一個haha ?*/ import java.util.*; public class CollectionDemo2 { ?public static void main(String[] args) { ? Collection coll = new ArrayList(); ? coll.add("abc2"); ? coll.add("abc4"); ? coll.add("abc4"); ? coll.add("abc1"); ? coll.add("abc3"); ? coll.add("abc3"); ? ? //獲取迭代器,使用集合iterator ? Iterator it = coll.iterator(); ? while(it.hasNext()){ ? ?//迭代過程中,如何判斷是否存在abc2對象 ? ?Object obj = it.next(); ? ?if("abc2".equals(obj)) ? ? it.remove(); ? ?//it.remove方法,移除的是哪一個對象呢,迭代到的是誰,就移除誰 ? ?System.out.println(obj); ? } ? ? System.out.println(coll); ?} } ? ? ? ? ? ? ? ?

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉