www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

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

關于Java中的集合

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


//=================================================== 4.集合中的存儲對象的取出。 ??就是取出集合中存儲對象的一種方式,遍歷數(shù)組很像。我們這里用的是迭代器
? iterator方法,寫在了Collection接口中,所有的小弟都具備這個方法 ? Iterator iterator() ? Iterator 接口,迭代器接口 iterator返回的是接口的實現(xiàn)類的對象 ? hasNext()判斷集合中還有沒有可以被取出對象,如果有就返回真 ? next()獲取集合中存儲的對象
? 使用迭代器取出集合中存儲對象的步驟: ? ? 第一步,使用集合中的方法iterator()獲取Iterator接口對象(內部類對象),獲取迭代器 ? ? 第二步,使用迭代器對象的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 ? 當?shù)饕呀浺苿拥搅俗詈笠晃唬俅问褂胣ext方法獲取,出現(xiàn) ? Exception in thread "main" java.util.NoSuchElementException--沒有元素被取出異常
it.nxet就像當于指針的移動。每次使用就會像下移動。所以一次判斷過程中。對于一個集合對象只能使用一次。這個一定要記住。而且迭代過程中不能改變長度。但是內容是可以的

迭代器中一共就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); ?} } ? ? ? ? ? ? ? ?

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

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

關鍵字: python java 高性能處理

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

關鍵字: java 接口 Interface

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

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

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

關鍵字: python java

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

關鍵字: javascript java

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

關鍵字: javascript java

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

關鍵字: C語言 java

Java封裝案例

關鍵字: java 實例

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

關鍵字: ArrayList 集合 數(shù)據(jù)結構

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

關鍵字: java 單例模式 雙重檢查鎖
關閉