《集合詳解之map》
Map介面集合類,具備的特點,儲存的資料結構都是以鍵值對的形式存在的,鍵不可重複,值可以重複。
新增
put() 如果之前沒有存在該鍵,那麼就返回的是null,如果之前就已經存在該鍵了,那麼就返回該鍵之前對應的值
Putall() 把一個集合新增到另外一個集合中去
刪除
Remove() 根據鍵刪除一條map中資料,返回的是該鍵對應的值
Clear() 清空集合中的所有元素
獲取
Get() 根據指定的鍵獲取對應的值
Size() 獲取map集合中的鍵值對的個數
判斷
Containskey() 判斷map集合是否包含指定的鍵
Containvalue() 判斷map集合中是否包含指定的值
Isempty() 判斷map
Hashmap:底層也是基於雜湊表實現的
Hashmap儲存原理:
往hashmap新增元素的的時候,首先會呼叫鍵的hashcode方法得到元素的雜湊碼值,然後經過運算可以算出該元素在雜湊表中儲存位置。分兩種情況。
情況1.
如果算出的位置目前沒有任何元素,那麼該元素可以直接新增到雜湊表中。
情況2.
如果算出的位置目前已經存在其他的元素,那麼還會呼叫該元素的equals方法與這個位置上的元素進行比較,如果equals方法返回的是false,那麼該元素允許被儲存,如果equsls返回是true,那麼該元素被視為重複元素,不允許儲存。
Treemap:treemap也是基於紅黑樹(二叉樹)資料結構實現的,特點就是會對元素的鍵進行排序儲存。
Treemap要注意的事項:
1. 往treemap新增元素的時候,如果元素的鍵具備自然順序,那麼就會按照鍵的自然順序特性進行排序儲存。
2. 往treemap新增元素的時候,如果元素鍵不具備自然順序,那麼元素的鍵類必須要實現comparable介面,把鍵的比較規則定義在compareto方法上。
3. 往treemap新增元素的時候,如果元素的鍵不具備自然順序特性,而且鍵所屬的類也沒有實現comparble介面,那麼就必須在建立treemap物件的時候傳入比較器。
Hashtable:底層也是依賴雜湊表實現的,也就是實現方式與hashmap是一致的,但是hashtable是執行緒安全的,操作效率低。
Jdk1.0出現的,hashmap是jdk1.2出現的
相關推薦
《集合詳解之map》
Map介面集合類,具備的特點,儲存的資料結構都是以鍵值對的形式存在的,鍵不可重複,值可以重複。新增put() 如果之前沒有存在該鍵,那麼就返回的是null,如果之前就已經存在該鍵了,那麼就返回該鍵之前對應的值Putall() 把一個集合新增到另外一個集合中去刪除Remove(
Java 進階——集合體系詳解之Map體系鍵值對集合
引言 一Map體系的訪問方式 Map的訪問也和HashSet的特點一樣是無需的,Map體系與Set體系不同並不實現Iterator介面,當然也不會具有迭代器,那麼Map集合怎麼訪問呢?間接通過Set的迭代器,Map集合訪問方式主要有兩種:keySet和e
集合詳解之HashMap
HashMap 和 HashSet 是 Java Collection Framework 的兩個重要成員,其中 HashMap 是 Map 介面的常用實現類,HashSet 是 Set 介面的常用實現類。雖然 HashMap 和 HashSet
《集合詳解之set》
Hashset無序:是新增元素的順序與元素出來的順序是不一致的。Hashset實現原理:往hashset新增元素的時候,hashset會先呼叫的hashcode方法得到元素的雜湊值,然後通過元素的雜湊值經過移位等運算,就可以算出該元素在雜湊表中的儲存位置。如果算出儲存位置分兩
《集合詳解之list》
集合集合:集合是儲存物件資料的集合容器集合比陣列的優勢:1. 集合可以儲存任意型別的物件資料,陣列只能儲存同一種資料型別的資料2. 集合的長度是會發生變化的,陣列的長度是固定的Collection單例集合的根介面List:如果是實現了list介面的集合類,具備的特點:有序,可
Java集合框架詳解之繼承map介面
趁著最近比較閒,靜下心來準備把關於集合框架的東西好好整理一下,邊學邊整理。近階段先是整理整體的知識點,一些介面,一些繼承類以及它們的特性,用法,後續還會有一些常用的,比較重要的類的jdk原始碼剖析。 map介面: Map 提供 Key 到 Value
Map集合詳解,Keyset檢視,Collection 檢視分析
Map集合詳解,Keyset檢視,Collection 檢視分析 map<k,v> k此對映 鍵的型別 v 對映值的型別。 特性:將鍵對映到值的物件。一個對映不能包含重複的鍵;每個鍵最多隻能對映到一個值。 常用方法: clear() : 從此對映中
Java進階—— 集合體系詳解之List體系有序集合
引言 面嚮物件語言對事物的體現必然是以物件的形式,Java工程師為了方便多多個物件的操作,就對物件進行儲存,集合就是儲存物件的一種方式,他們的底層都是基於不同的資料結構。當然集合和陣列一樣都是容器,陣列也是可以儲存物件的,但是陣列長度一經初始化長度就是固定的,
Java集合詳解--什麼是Map
引言 在很久很久以前,講過Set的實現原理,講到Set就是Map的馬甲,那麼今天我們就來看看Map是如何實現的(本文都基於JDK1.8的版本) 什麼是Map Map和Collection有關的幾個map的關係圖 Map的定義
Redis內部資料結構詳解之整數集合(intset)
整數集合簡介 整數集合intset用於有序、無重複地儲存多個整數值,根據集合中元素的值自動選擇使用整數型別來儲存元素,例如:如果intset中絕對值最大的整數可以用int32_t來儲存,那麼整個
map、set和list集合詳解
集合是用來代替陣列完成陣列做不到的工作的,用過陣列的都知道,陣列有著很明顯的短板,資料型別的限制,定長的不靈活性等,因此幾乎被集合完全取代。 通俗的說,集合就是一個放資料的容器,準確的說是放資料物件引用的容器。它比陣列功能要強大的多,靈活性也更高。但我們要注意:
Java中的Map集合詳解
一、概述 java中的map集合使用鍵(key)值(value)來儲存資料,其中值(value)可以重複,但鍵(key)必須是唯一,也可以為空,但最多隻能有一個key為空,它的主要實現類有HashM
【集合詳解】Java集合總結(中)-Map家族
接上文,本篇部落格我們接著談論有關集合的內容。 java所有的集合分成三大類。Set類似罐子,把一個物件新增到Set集合時,Set集合無法記住新增這個元素的順序,所以Set裡的元素不能重複。List集合非常想一個數組,可以記住每次新增元素的順序,且List的長
解決ajax跨域的方法原理詳解之Cors方法
詳細 不同 htm 渲染 jsonp del 需要 methods href 1、神馬是跨域(Cross Domain) 對於端口和協議的不同,只能通過後臺來解決。 一句話:同一個ip、同一個網絡協議、同一個端口,三者都滿足就是同一個域,否則就是 跨域問題了。而為
javascript設計模式詳解之命令模式
這一 clas 例子 別了 logs 操作 book 技術 概念 每種設計模式的出現都是為了彌補語言在某方面的不足,解決特定環境下的問題。思想是相通的。只不過不同的設計語言有其特定的實現。對javascript這種動態語言來說,弱類型的特性,與生俱來的多態性,導致某些設
MVC之Ajax.BeginForm使用詳解之更新列表
分布 use html text col 返回 uno pts scripts 1.首先,請在配置文件設置如下:(該項默認都存在且為true) <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 2
hibernate 表關系映射詳解之繼承關系
子類 用戶 .cn cnblogs -1 擁有 nat src 實體類 舉例:亞馬遜的網上商城可以賣很多東西,比如說圖書,電器,水果等等,那麽我們以面向對象的理念去抽象一個商品類,他具有商品的共有屬性,比如說上架時間,當前 價格,優惠價格等待,商品可以繼承商
OSPF詳解之三:OSPF LSA詳解
ospf lsa詳解 forwarding address OSPF LSA詳解OSPF V2版本中常用的主要有6類LSA,分別是Router-LSA、Network-LSA、Network-summary-LSA、ASBR-summary-LSA、AS-External-LSA、NSSA-LSA,接
09_02_磁盤及文件系統管理詳解之五
09_02_磁盤及文件系統管理詳解之五分區 —> 創建文件系統(格式化)文件系統管理重新創建文件系統會損壞原有文件fdisk /dev/sda在裏面刪不掉,按ctrl+Backspace即可partprobe /dev/sda 只探測這一個mkfs: make file system -t FS
mysql數據庫 詳解 之 自學成才1
簡化 註意 可能 方法 after 字符型 專題 mar 建議 一、學習目錄 1.認識數據庫和mysql 2.mysql連接 3.入門語句 4.詳解列類型 5.增刪改查 INSERT INTO 表名(列1,…… 列n) VALUES(值 1,…… 值 n); *(列