本文目錄一覽:
- 1、JAVA中的幾個集合的區別在哪?
- 2、JAVA的集合類型有哪些
- 3、北大青鳥設計培訓:Java集合框架的知識總結?
- 4、關於java的集合,在list集合中添加map集合
- 5、在Java中,什麼是集合類,跟普通類有什麼區別?
- 6、JAVA中幾種集合(List、Set和Map)的區別
JAVA中的幾個集合的區別在哪?
list map set三個都是接口 Map 映射表, 一個key只能對應一個value(它的反命題,一個value只對應一個key不成立) 最常用的有: Map L— HashMap (key可以null) L— HashTable (key不能為null) L—Properties (適合讀取.properties格式的文件) L— SortedMap(interface根據Key排序) L—TreeMap(用二叉樹實現key排序) List 和 Set 都是線性的,主要區別是List裡面存放的內容可以重複,而Set同一對象只保留唯一的一個。因此,Map裡面,提取Key集合的返回類型是Set,而提取Value集合的類型是Collection(List/Set)的父類型。 常用的有 List L—LinkedList(鏈表) L—ArrayList(動態數組,所有方法不同步) L—Vector(動態數組,所有方法同步) L—Stack(可以實現LIFO的棧)
JAVA的集合類型有哪些
集合類型主要有3種:set(集)、list(列表)和map(映射)。
1、List(有序、可重複)
List里存放的對象是有序的,同時也是可以重複的,List關注的是索引,擁有一系列和索引相關的方法,查詢速度快。因為往list集合里插入或刪除數據時,會伴隨着後面數據的移動,所有插入刪除數據速度慢。
2、Set(無序、不能重複)
Set里存放的對象是無序,不能重複的,集合中的對象不按特定的方式排序,只是簡單地把對象加入集合中。
3、Map(鍵值對、鍵唯一、值不唯一)
Map集合中存儲的是鍵值對,鍵不能重複,值可以重複。根據鍵得到值,對map集合遍歷時先得到鍵的set集合,對set集合進行遍歷,得到相應的值。
擴展資料:
JAVA集合類型四種常見輸出方式:
1、Iterator:迭代輸出,是使用最多的輸出方式。
2、ListIterator:是Iterator的子接口,專門用於輸出List中的內容。
3、foreach輸出:JDK1.5之後提供的新功能,可以輸出數組或集合。
4、for循環。
代碼示例如下:
for的形式:for(int i=0;iarr.size();i++){…}
foreach的形式: for(int i:arr){…}
iterator的形式:
Iterator it = arr.iterator();
while(it.hasNext()){ object o =it.next(); …}
參考資料來源:百度百科:java集合類
北大青鳥設計培訓:Java集合框架的知識總結?
說明:先從整體介紹了Java集合框架包含的接口和類,然後青島IT培訓總結了集合框架中的一些基本知識和關鍵點,並結合實例進行簡單分析。
1、綜述 所有集合類都位於java.util包下。
集合中只能保存對象(保存對象的引用變量)。
(數組既可以保存基本類型的數據也可以保存對象)。
當我們把一個對象放入集合中後,系統會把所有集合元素都當成Object類的實例進行處理。
從JDK1.5以後,這種狀態得到了改進:可以使用泛型來限制集合里元素的類型,並讓集合記住所有集合元素的類型(參見具體泛型的內容)。
Java的集合類主要由兩個接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,這兩個接口又包含了一些接口或實現類。
Set、List和Map可以看做集合的三大類。
List集合是有序集合,集合中的元素可以重複,訪問集合中的元素可以根據元素的索引來訪問。
Set集合是無序集合,集合中的元素不可以重複,訪問集合中的元素只能根據元素本身來訪問(也是不能集合里元素不允許重複的原因)。
Map集合中保存Key-value對形式的元素,訪問時只能根據每項元素的key來訪問其value。
對於Set、List和Map三種集合,最常用的實現類分別是HashSet、ArrayList和HashMap三個實現類。
(並發控制的集合類,以後有空研究下)。
2、Collection接口 Collection接口是List、Set和Queue接口的父接口,同時可以操作這三個接口。
Collection接口定義操作集合元素的具體方法大家可以參考API文檔,這裡通過一個例子來說明Collection的添加元素、刪除元素、返回集合中元素的個數以及清空集合元素的方法。
3、兩種遍歷集合的方法Iterator接口和foreach循環 1、Iterator接口Iterator也是Java集合框架的成員,主要用於遍歷(即迭代訪問)Collection集合中的元素,也稱為迭代器。
關於java的集合,在list集合中添加map集合
Java中的集合包括三大類,它們是Set、List和Map,它們都處於java.util包中,Set、List和Map都是接口,它們有各自的實現類。Set的實現類主要有HashSet和TreeSet,List的實現類主要有ArrayList,Map的實現類主要有HashMap和TreeMap。Set中的對象不按特定方式排序,並且沒有重複對象。但它的有些實現類能對集合中的對象按特定方式排序,例如TreeSet類,它可以按照默認排序,也可以通過實現java.util.Comparator接口來自定義排序方式。List中的對象按照索引位置排序,可以有重複對象,允許按照對象在集合中的索引位置檢索對象,如通過list.get(i)方式來獲得List集合中的元素。Map中的每一個元素包含一個鍵對象和值對象,它們成對出現。鍵對象不能重複,值對象可以重複。
在Java中,什麼是集合類,跟普通類有什麼區別?
簡單的說,集合類有list列,set集和map映射 三大類!
Set(集):集合中的對象無排列順序,並且沒有重複的對象.
List(隊列):集合中的對象按照索引的順序排列,可以有重複的對象。
Map(映射):集合中的每一個元素都是一對一對的,包括一個key對象,一個Value對象(一個Key指向一個Value).集合中沒有重複的key對象,但是vaulue對象可以重複.
集合類是進行集合操作的。
JAVA中幾種集合(List、Set和Map)的區別
Set對每個對象只接受一次,並使用自己內部的排序方法(通常,你只關心某個元素是否屬於Set,而不關心它的順序–否則應該使用List)。Map同樣對每個元素保存一份,但這是基於”鍵”的,Map也有內置的排序,因而不關心元素添加的順序。如果添加元素的順序對你很重要,應該使用 LinkedHashSet或者LinkedHashMap.總結:List有順序有重複沒有排序,set無重複有排序,map的key也和set一樣。如果想跟List一樣需要有插入元素的順序,請使用LinkedHashSet或者LinkedHashMap。List的功能方法實際上有兩種List: 一種是基本的ArrayList,其優點在於隨機訪問元素,另一種是更強大的LinkedList,它並不是為快速隨機訪問設計的,而是具有一套更通用的方法。List : 次序是List最重要的特點:它保證維護元素特定的順序。List為Collection添加了許多方法,使得能夠向List中間插入與移除元素(這隻推薦LinkedList使用。)一個List可以生成ListIterator,使用它可以從兩個方向遍歷List,也可以從List中間插入和移除元素。ArrayList : 由數組實現的List。允許對元素進行快速隨機訪問,但是向List中間插入與移除元素的速度很慢。ListIterator只應該用來由後向前遍歷ArrayList,而不是用來插入和移除元素。因為那比LinkedList開銷要大很多。LinkedList : 對順序訪問進行了優化,向List中間插入與刪除的開銷並不大。隨機訪問則相對較慢。(使用ArrayList代替。)還具有下列方法:addFirst(), addLast(), getFirst(), getLast(), removeFirst() 和 removeLast(), 這些方法 (沒有在任何接口或基類中定義過)使得LinkedList可以當作堆棧、隊列和雙向隊列使用。Set的功能方法Set : 存入Set的每個元素都必須是唯一的,因為Set不保存重複元素。加入Set的元素必須定義equals()方法以確保對象的唯一性。Set與Collection有完全一樣的接口。Set接口不保證維護元素的次序。HashSet : 為快速查找設計的Set。存入HashSet的對象必須定義hashCode()。TreeSet : 保存次序的Set, 底層為樹結構。使用它可以從Set中提取有序的序列。LinkedHashSet : 具有HashSet的查詢速度,且內部使用鏈表維護元素的順序(插入的次序)。於是在使用迭代器遍歷Set時,結果會按元素插入的次序顯示。Map的功能方法方法put(Object key, Object value)添加一個“值”(想要得東西)和與“值”相關聯的“鍵”(key)(使用它來查找)。方法get(Object key)返回與給定“鍵”相關聯的“值”。可以用containsKey()和containsValue()測試Map中是否包含某個“鍵”或“值”。標準的Java類庫中包含了幾種不同的Map:HashMap, TreeMap, LinkedHashMap, WeakHashMap, IdentityHashMap。它們都有同樣的基本接口Map,但是行為、效率、排序策略、保存對象的生命周期和判定“鍵”等價的策略等各不相同。執行效率是Map的一個大問題。看看get()要做哪些事,就會明白為什麼在ArrayList中搜索“鍵”是相當慢的。而這正是HashMap提高速度的地方。HashMap使用了特殊的值,稱為“散列碼”(hash code),來取代對鍵的緩慢搜索。“散列碼”是“相對唯一”用以代表對象的int值,它是通過將該對象的某些信息進行轉換而生成的。所有Java對象都能產生散列碼,因為hashCode()是定義在基類Object中的方法。HashMap就是使用對象的hashCode()進行快速查詢的。此方法能夠顯著提高性能。Map : 維護“鍵值對”的關聯性,使你可以通過“鍵”查找“值”HashMap : Map基於散列表的實現。插入和查詢“鍵值對”的開銷是固定的。可以通過構造器設置容量capacity和負載因子load factor,以調整容器的性能。LinkedHashMap : 類似於HashMap,但是迭代遍歷它時,取得“鍵值對”的順序是其插入次序,或者是最近最少使用(LRU)的次序。只比HashMap慢一點。而在迭代訪問時發而更快,因為它使用鏈表維護內部次序。TreeMap : 基於紅黑樹數據結構的實現。查看“鍵”或“鍵值對”時,它們會被排序(次序由Comparabel或Comparator決定)。TreeMap的特點在於,你得到的結果是經過排序的。TreeMap是唯一的帶有subMap()方法的Map,它可以返回一個子樹。WeakHashMao : 弱鍵(weak key)Map,Map中使用的對象也被允許釋放: 這是為解決特殊問題設計的。如果沒有map之外的引用指向某個“鍵”,則此“鍵”可以被垃圾收集器回收。IdentifyHashMap : 使用==代替equals()對“鍵”作比較的hash map。專為解決特殊問題而設計。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/220074.html