java集合的定義
① java中集合到底有什麼用
Java中,集合主要有List、Set和Map,我個人理解集合的主要作用是相當於一個容器,你可以在裡面裝你希望裝的對象,可以是Java內置的類,也可以是自定義的類。再者,這些集合支持一些方便的操作,比如Set可以排除重復,Map可以快速檢索等等。
② 怎麼才能了解JAVA集合類集合類是什麼
數組是集合的一種,是集合的一個子集,你理解了數組就理解了集合.
理解集合類
集合類存放於java.util包中。
集合類存放的都是對象的引用,而非對象本身,出於表達上的便利,我們稱集合中的對象就是指集合中對象的引用(reference)。
集合類型主要有3種:set(集)、list(列表)和map(映射)。
(1)集
集(set)是最簡單的一種集合,它的對象不按特定方式排序,只是簡單的把對象加入集合中,就像往口袋裡放東西。
對集中成員的訪問和操作是通過集中對象的引用進行的,所以集中不能有重復對象。
集也有多種變體,可以實現排序等功能,如TreeSet,它把對象添加到集中的操作將變為按照某種比較規則將其插入到有序的對象序列中。它實現的是SortedSet介面,也就是加入了對象比較的方法。通過對集中的對象迭代,我們可以得到一個升序的對象集合。
(2)列表
列表的主要特徵是其對象以線性方式存儲,沒有特定順序,只有一個開頭和一個結尾,當然,它與根本沒有順序的集是不同的。
列表在數據結構中分別表現為:數組和向量、鏈表、堆棧、隊列。
關於實現列表的集合類,是我們日常工作中經常用到的,將在後邊的筆記詳細介紹。
(3)映射
映射與集或列表有明顯區別,映射中每個項都是成對的。映射中存儲的每個對象都有一個相關的關鍵字(Key)對象,關鍵字決定了對象在映射中的存儲位置,檢索對象時必須提供相應的關鍵字,就像在字典中查單詞一樣。關鍵字應該是唯一的。
關鍵字本身並不能決定對象的存儲位置,它需要對過一種散列(hashing)技術來處理,產生一個被稱作散列碼(hash code)的整數值,散列碼通常用作一個偏置量,該偏置量是相對於分配給映射的內存區域起始位置的,由此確定關鍵字/對象對的存儲位置。理想情況下,散列處理應該產生給定范圍內均勻分布的值,而且每個關鍵字應得到不同的散列碼。
集合類簡介
java.util中共有13個類可用於管理集合對象,它們支持集、列表或映射等集合,以下是這些類的簡單介紹
集:
HashSet: 使用HashMap的一個集的實現。雖然集定義成無序,但必須存在某種方法能相當高效地找到一個對象。使用一個HashMap對象實現集的存儲和檢索操作是在固定時間內實現的.
TreeSet: 在集中以升序對對象排序的集的實現。這意味著從一個TreeSet對象獲得第一個迭代器將按升序提供對象。TreeSet類使用了一個TreeMap.
列表:
Vector: 實現一個類似數組一樣的表,自動增加容量來容納你所需的元素。使用下標存儲和檢索對象就象在一個標準的數組中一樣。你也可以用一個迭代器從一個Vector中檢索對象。Vector是唯一的同步容器類??當兩個或多個線程同時訪問時也是性能良好的。
Stack: 這個類從Vector派生而來,並且增加了方法實現棧??一種後進先出的存儲結構。
LinkedList: 實現一個鏈表。由這個類定義的鏈表也可以像棧或隊列一樣被使用。
ArrayList: 實現一個數組,它的規模可變並且能像鏈表一樣被訪問。它提供的功能類似Vector類但不同步。
映射:
HashTable: 實現一個映象,所有的鍵必須非空。為了能高效的工作,定義鍵的類必須實現hashcode()方法和equal()方法。這個類是前面java實現的一個繼承,並且通常能在實現映象的其他類中更好的使用。
HashMap: 實現一個映象,允許存儲空對象,而且允許鍵是空(由於鍵必須是唯一的,當然只能有一個)。
WeakHashMap: 實現這樣一個映象:通常如果一個鍵對一個對象而言不再被引用,鍵/對象對將被舍棄。這與HashMap形成對照,映象中的鍵維持鍵/對象對的生命周期,盡管使用映象的程序不再有對鍵的引用,並且因此不能檢索對象。
TreeMap: 實現這樣一個映象,對象是按鍵升序排列的。
Set和List都是由公共介面Collection擴展而來,所以它們都可以使用一個類型為Collection的變數來引用。這就意味著任何列表或集構成的集合都可以用這種方式引用,只有映射類除外(但也不是完全排除在外,因為可以從映射獲得一個列表。)所以說,把一個列表或集傳遞給方法的標准途徑是使用Collection類型的參數
③ Java集合什麼意思
1、集合可以有List,vector等,其實map也是一個集合
2、這些集合有啥用呢,就好比你有一堆數據要存:
[name='張三' , age=20, address='北京']
[name='李四' , age=15, address='湖南']
[name='王五' , age=18, address='甘肅']等等,
這樣一條一條的數據你就能夠用集合來保存起來,放到一條集合中去
3、例如用list來保存,保存形式就如下:
list = {[name='張三' , age=20, address='北京'], [name='李四' , age=15, address='湖南'] , [name='王五' , age=18, address='甘肅']};
這樣的形式了,然後取值的時候你就可以根據list.get(i)來分別取值了。
4、如果要取到每一條裡面的屬性,那麼可以配合map或者存儲的是實體類對象,來分別取值就對了,非常的簡單且實用
④ java集合定義map
Map介面映射唯一鍵的值。一個關鍵是,要使用在日後檢索值對象。
給定一個鍵和一個值,可以在一個Map對象存儲的值。後的值被存儲時,可以使用它的鍵檢索。
拋出一個NoSuchElementException異常,是因為調用映射不存在的項目。
當一個對象是在映射上的元素不兼容拋出一個ClassCastException異常。
NullYiierException異常被拋出,如果試圖使用一個空對象。
當試圖改變一個不可修改的Map,則拋出一個UnsupportedOperationException異常。
SN
方法與描述
void clear( )
移除調用映射的所有鍵/值對。
boolean containsKey(Object k)
返回true如果調用映射包含k作為重點。否則,返回false。
boolean containsValue(Object v)
返回true如果映射包含v作為一個值。否則,返回false。
Set entrySet( )
返回一組包含在地圖中的條目。該集合包含類型Map.Entry對象。這種方法提供了一組視圖調用地圖。
boolean equals(Object obj)
如果obj是一個Map返回true,並且包含相同的條目。否則,返回false。
Object get(Object k)
返回與k關聯的值。
int hashCode( )
返回調用映射的哈希代碼。
boolean isEmpty( )
如果調用映射為空返回true。否則,返回false。
Set keySet( )
返回一個集,其中包含調用映射的鍵。這種方法提供了一組視圖中調用映射的鍵。
Object put(Object k, Object v)
放入調用映射中的條目,覆蓋與鍵相關聯的任何一個值。鍵和值分別為k和v。如果不已經存在鍵返回null。否則,將返回關聯鍵的前一個值。
void putAll(Map m)
把從m所有條目放進入此映射。
Object remove(Object k)
刪除其關鍵字等於k中的條目。
int size( )
返回在映射上的鍵/值對的數目。
Collection values( )
返回包含在映射中的值的集合。這種方法提供了一個集合視圖在映射中的值。
例子:
映射有其不同的類實現,比如HashMap。下面是例子來說明映射功能:
Map Elements
{Mahnaz=31, Ayan=12, Daisy=14, Zara=8}
⑤ java中容器和集合是一個概念嗎
容器是指放東西的物品,在JAVA裡面也是這樣的,比如 list 是可以用來放對象的列表 你也可以自定義一些類來放其它對象,那麼,你定義的這個類就是其它對象的容器。
集合是一組可變數量的數據項,集合的種類包括列表,集,多重集,樹和圖,通俗地講就是這么一堆東西。
ArrayList這個類是一種容器,容器里裝的是一組數據的集合。多個ArrayList的實例也可以作為一組數據的集合。
這樣就好理解了,你可以把這么一堆東西放進容器里,你也可以把這幾個容器當成這么一堆東西給其它人。
這些只是概念,真正用起來,你就不會想這東西是容器還是集合了,把這東西用好才是關鍵。
⑥ java中集合、集合類和集合框架是什麼意思
都是在講集合,就全是和集合有關的。。。。。框架也就是某些類的全稱。。。。
集合是說擁有集合屬性的定義
集合類,是一些實現類。。。。。
⑦ java 集合類的基本概念
java集合我的理解就是一種容器可以容納不同的數據類型。因為每種集合的實現原理不同,其中有的是按順序排列的,有的是鍵值對對應的,還有線程安全的不同特性,每種集合都有自己的特性。
⑧ Java中「集合」是啥意思集合類的「集合」
在java語言提供的工具類里,一般集合指的是實現了Collection介面的類。
主要是Set、List、Queue
Collection介面方法如下
當然 還有很多很多,就不一一舉例了。
另外如果你願意完全可以定義自己的集合,說白了不就是按照自己的邏輯把對象放在一起么~~~一般實現存、取、排序 就OK了。
⑨ Java集合 這個「集合」概念體現在哪裡的
在你的程序中 new 了一個集合 Collention c , 對應的繼承類為 HashSet,其實就是放到一個HashSet類型的對象中了。
在使用Java的時候,我們都會遇到使用集合(Collection)的時候,但是Java API提供了多種集合的實現,我在使用和面試的時候頻頻遇到這樣的「抉擇」 。 :)(主要還是面試的時候)久而久之,也就有了一點點的心得體會,寫出來以供大家討論 。
總的說來,Java API中所用的集合類,都是實現了Collection介面,他的一個類繼承結構如下:
Collection<--List<--Vector
Collection<--List<--ArrayList
Collection<--List<--LinkedList
Collection<--Set<--HashSet
Collection<--Set<--HashSet<--LinkedHashSet
Collection<--Set<--SortedSet<--TreeSet
Vector : 基於Array的List,其實就是封裝了Array所不具備的一些功能方便我們使用,它不可能走入Array的限制。性能也就不可能超越Array。所以,在可能的情況下,我們要多運用Array。另外很重要的一點就是Vector「synchronized」的,這個也是Vector和ArrayList的唯一的區別。ArrayList:同Vector一樣是一個基於Array上的鏈表,但是不同的是ArrayList不是同步的。所以在性能上要比Vector優越一些,但是當運行到多線程環境中時,可需要自己在管理線程的同步問題。LinkedList:LinkedList不同於前面兩種List,它不是基於Array的,所以不受Array性能的限制。它每一個節點(Node)都包含兩方面的內容:1.節點本身的數據(data);2.下一個節點的信息(nextNode)。所以當對LinkedList做添加,刪除動作的時候就不用像基於Array的List一樣,必須進行大量的數據移動。只要更改nextNode的相關信息就可以實現了。這就是LinkedList的優勢。
⑩ java中集合類是什麼意思
java.util中共有13個類可用於管理集合對象,它們支持集、列表或映射等集合,以下是這些類的簡單介紹
集:
HashSet: 使用HashMap的一個集的實現。雖然集定義成無序,但必須存在某種方法能相當高效地找到一個對象。使用一個HashMap對象實現集的存儲和檢索操作是在固定時間內實現的.
TreeSet: 在集中以升序對對象排序的集的實現。這意味著從一個TreeSet對象獲得第一個迭代器將按升序提供對象。TreeSet類使用了一個TreeMap.
列表:
Vector: 實現一個類似數組一樣的表,自動增加容量來容納你所需的元素。使用下標存儲和檢索對象就象在一個標準的數組中一樣。你也可以用一個迭代器從一個Vector中檢索對象。Vector是唯一的同步容器類??當兩個或多個線程同時訪問時也是性能良好的。
Stsck: 這個類從Vector派生而來,並且增加了方法實現棧??一種後進先出的存儲結構。
LinkedList: 實現一個鏈表。由這個類定義的鏈表也可以像棧或隊列一樣被使用。
ArrayList: 實現一個數組,它的規模可變並且能像鏈表一樣被訪問。它提供的功能類似Vector類但不同步。
映射:
HashTable: 實現一個映象,所有的鍵必須非空。為了能高效的工作,定義鍵的類必須實現hashcode()方法和equal()方法。這個類是前面java實現的一個繼承,並且通常能在實現映象的其他類中更好的使用。
HashMap: 實現一個映象,允許存儲空對象,而且允許鍵是空(由於鍵必須是唯一的,當然只能有一個)。
WeakHashMap: 實現這樣一個映象:通常如果一個鍵對一個對象而言不再被引用,鍵/對象對將被舍棄。這與HashMap形成對照,映象中的鍵維持鍵/對象對的生命周期,盡管使用映象的程序不再有對鍵的引用,並且因此不能檢索對象。
TreeMap: 實現這樣一個映象,對象是按鍵升序排列的。
Set 和List都是由公共介面Collection擴展而來,所以它們都可以使用一個類型為Collection的變數來引用。這就意味著任何列表或集構成的 集合都可以用這種方式引用,只有映射類除外(但也不是完全排除在外,因為可以從映射獲得一個列表。)所以說,把一個列表或集傳遞給方法的標准途徑是使用 Collection類型的參數。