日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

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

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

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


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

迭代器中一共就3個(gè)方法。 hasNext() next() 還有一個(gè)方法remove()
/* ?* 迭代器一個(gè)集合 ?* 如果集合中有abc2這個(gè)對(duì)象,請(qǐng)你刪除它 ?* 迭代器中的一個(gè)方法remove ?* ?* 如果集合中有abc2這個(gè)對(duì)象,請(qǐng)你添加一個(gè)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對(duì)象 ? ?Object obj = it.next(); ? ?if("abc2".equals(obj)) ? ? it.remove(); ? ?//it.remove方法,移除的是哪一個(gè)對(duì)象呢,迭代到的是誰,就移除誰 ? ?System.out.println(obj); ? } ? ? System.out.println(coll); ?} } ? ? ? ? ? ? ? ?

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

Python和Java是兩種廣泛應(yīng)用于編程領(lǐng)域的高級(jí)編程語言,它們各有優(yōu)劣。本文從程序設(shè)計(jì)應(yīng)用、系統(tǒng)資源占用、高性能處理和語言特點(diǎn)等四方面詳細(xì)介紹兩種編程語言的區(qū)別。

關(guān)鍵字: python java 高性能處理

在這篇文章中,小編將為大家?guī)鞪ava接口的相關(guān)報(bào)道。如果你對(duì)本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: java 接口 Interface

應(yīng)該有不少小伙伴有假期打工的經(jīng)歷,那今天就來給公眾號(hào)的讀者朋友們分享一個(gè)二哥編程星球里一個(gè)球友在富士康打工 50 天的感受,相信大家看完后會(huì)深深觸動(dòng)的。

關(guān)鍵字: 物聯(lián)網(wǎng) java 博客

在過去的幾年中,Python的普及速度令人驚嘆,Java的王者地位也常年不衰。目前兩者的競(jìng)爭(zhēng)愈發(fā)激烈,怎么選擇成為了許多初學(xué)者縈繞心中的問題,網(wǎng)上有很多版本的說法牽引著他們的思維,讓本來很簡(jiǎn)單的問題復(fù)雜化。

關(guān)鍵字: python java

我們都知道,瀏覽一個(gè)網(wǎng)頁,有兩個(gè)很主要的“電腦”在共同運(yùn)行,一臺(tái)是遠(yuǎn)程的,為你提供網(wǎng)頁數(shù)據(jù)的“服務(wù)器”,一臺(tái)是你正在使用的客戶端電腦。

關(guān)鍵字: javascript java

在各種網(wǎng)頁制作技術(shù)論壇中,常常有人詢問javascript與Java有什么區(qū)別,甚至有人誤認(rèn)為javascript就是Java。javascript與Java確實(shí)有一定的聯(lián)系,但它們并不像我們想象的那樣聯(lián)系緊密,甚至可以...

關(guān)鍵字: javascript java

對(duì)于很多初學(xué)者來講,不太清楚Java和C語言的區(qū)別,為了讓那個(gè)大家更清晰的了解,近日特意給大家歸納了一些兩者的大致區(qū)別,希望能夠給大家?guī)硪欢ǖ膸椭饔茫矚g迎大家進(jìn)行詳細(xì)補(bǔ)充和歸納。

關(guān)鍵字: C語言 java

Java封裝案例

關(guān)鍵字: java 實(shí)例

前言ArrayList是Java集合框架中比較常用的數(shù)據(jù)結(jié)構(gòu)了。繼承自AbstractList,實(shí)現(xiàn)了List接口。底層基于數(shù)組實(shí)現(xiàn)容量大小動(dòng)態(tài)變化。一看就是一個(gè)比較重要的模塊,所以我們今天就來學(xué)習(xí)一下ArrayList...

關(guān)鍵字: ArrayList 集合 數(shù)據(jù)結(jié)構(gòu)

今天我們就要來講講看似線程安全的雙重檢查鎖單例模式中可能會(huì)出現(xiàn)的指令重排問題。

關(guān)鍵字: java 單例模式 雙重檢查鎖
關(guān)閉