1. 程式人生 > >map常見用法

map常見用法

1Map用法

型別介紹

Java 自帶了各種 Map 類。這些 Map 類可歸為三種類型:

1. 通用Map,用於在應用程式中管理對映,通常在 java.util 程式包中實現

HashMap、Hashtable、Properties、LinkedHashMap、IdentityHashMap、TreeMap、WeakHashMap、ConcurrentHashMap

2. 專用Map,通常我們不必親自建立此類Map,而是通過某些其他類對其進行訪問

java.util.jar.Attributes、javax.print.attribute.standard.PrinterStateReasons、java.security.Provider、java.awt.RenderingHints、javax.swing.UIDefaults

3. 一個用於幫助我們實現自己的Map類的抽象類

AbstractMap

型別區別

HashMap

最常用的Map,它根據鍵的HashCode 值儲存資料,根據鍵可以直接獲取它的值,具有很快的訪問速度。HashMap最多隻允許一條記錄的鍵為Null(多條會覆蓋);允許多條記錄的值為 Null。非同步的。

TreeMap

能夠把它儲存的記錄根據鍵(key)排序,預設是按升序排序,也可以指定排序的比較器,當用Iterator 遍歷TreeMap時,得到的記錄是排過序的。TreeMap不允許key的值為null。非同步的。 
Hashtable

與 HashMap類似,不同的是:key和value的值均不允許為null;它支援執行緒的同步,即任一時刻只有一個執行緒能寫Hashtable,因此也導致了Hashtale在寫入時會比較慢。 
LinkedHashMap

儲存了記錄的插入順序,在用Iterator遍歷LinkedHashMap時,先得到的記錄肯定是先插入的.在遍歷的時候會比HashMap慢。key和value均允許為空,非同步的。 

Map 初始化

Java | 複製
1 Map<String, String> map = new HashMap<String, String>();

插入元素

Java | 複製
1 map.put("key1""value1"
);

獲取元素

Java | 複製
1 map.get("key1")

移除元素

Java | 複製
1 map.remove("key1");

清空map

Java | 複製
1 map.clear();

2四種常用Map插入與讀取效能比較

測試環境

jdk1.7.0_80

測試結果

插入10次平均(ms) 讀取10次平均(ms)
1W 10W 100W 1W 10W 100W
HashMap 56 261 3030 2 21 220
LinkedHashMap 25 229 3069 2 20 216
TreeMap 29 295 4117 5 103 1446
Hashtable 24 234 3275 2 22 259

測試程式碼

Java | 複製
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

相關推薦

c++ STL map常見用法

#include<iostream> #include<string> #include<map> using namespace std; int main(){ //定義 map<int, string> map1

python map 常見用法

list 合併 1 2 3 4 5 6 7 8 >>>list1=[11,22,33] >>>map(None,list1) [11,22,

map常見用法

1Map用法 型別介紹 Java 自帶了各種 Map 類。這些 Map 類可歸為三種類型: 1. 通用Map,用於在應用程式中管理對映,通常在 java.util 程式包中實現 HashMap、Hashtable、Properties、Li

map函式,java和C++的常見用法

map函式是一個很常用到的對映函式,他在演算法分析的時候有著舉足輕重的作用,他可以結果超大空間的問題,比如說需要開一個很大的陣列來表示一組關係,比如說要記錄下一個學生的學號和姓名,總共有10^9之多的學生,如果使用一維陣列是承受不了的,這個時候只能使用map函式,來記錄這麼

Map.putAll()用法

輸出結果 net pla rgs get system void util ace import Java.util.HashMap; public class Map_putAllTest {public static void main(String[] args){

sed常見用法

用法 amp 常見用法 刪除空白行 正則表達式 使用 表達式 開始 文本 sed ‘s/pattern/replace_string/‘ file:替換文本中第一個匹配的字符串 此處定界符為/,也可以使用任意定界符,比如此處語句也可以寫成sed ‘s:pattern:r

jQuery常見用法

toggle 對象 mat 內邊距 發生 字符串 積累 生成 ack jQuery有好多版本本,無法同時引用兩個不同的版本,容易造成混亂,用哪一個,調用哪一個.\ jQuery引用到<head></head>中,頁面加載時就需要特效調用這些方法.

【Python筆記】文件常見用法

off 習慣 size readline 追加 run 寫到 文件 內部 關於文件的函數w 寫方式a 追加模式打開(從EOF開始,必要時創建新文件)r+ 以讀寫模式打開w+ 以讀寫模式打開a+ 以讀寫模式打開rb 以二進制讀模式打開wb 以二進制寫模式打開 (參見 w )a

ES6新增數據結構Map用法

轉換函數 out 使用數組 undefine true blog name efi foreach Javascript的Object本身就是鍵值對的數據結構,但實際上屬性和值構成的是”字符串-值“對,屬性只能是字符串,如果傳個對象字面量作為屬性名,

map reduce 用法 str處理lower() capitalize()

rod str -s tip col key mps capital 元素 -- 1 s=‘123456‘ 2 l={‘0‘:0,‘1‘:1,‘2‘:2,‘3‘:3,‘4‘:4,‘5‘:5,‘6‘:6,‘7‘:7,‘8‘:8,‘9‘:9}[s[0]] 3 print(l)

C++之const_cast常見用法

href ase lan val das weibo tls ipp ops ls71kr餃瓷幽透蓖茲http://shufang.docin.com/sina_6341788483gclx8t思煙遲謔爸捌http://jz.docin.com/zsoy17419hcqm蛻

Linux中find常見用法示例

depth 需要 option 為什麽 語法 其他 文件訪問 this man Linux中find常見用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} \; fi

(轉)輕松掌握shell編程中數組的常見用法及示例

分享 shell編程 內容 就是 linu 迷糊 常見 /etc/ med 緣起:在老男孩進行linux培訓shell編程教學中,發現不少水平不錯的網友及同學對數組仍然很迷糊,下面就給大家分享下數組的用法小例子,希望能給大家一點幫助。其實SHELL的數組很簡單,好用。我們學

Supervisord常見用法和介紹

進程 管理工具 share viso 使用介紹 開啟 com aso process Supervisord是用Python實現的一款非常實用的進程管理工具。supervisord會幫你把管理的應用程序轉成daemon程序,而且可以方便的通過命令開啟、關閉、重啟等操作,而且

List、Set、Map常見集合遍歷總結

排序 out java tlab vhdl for var 定義 word Java中的集合有三大類,List、Set、Map,都處於java.util包中,List、Set和Map都是接口,不能被實例化,它們的各自的實現類可以被實例化。List的實現類主要有ArrayLi

map用法

spa line body table border 打印 height return nts 第一個接收函數名,第二個接收可叠代對象 ls = [1,2,3] rs = map(str, ls) #打印結果 [‘1‘, ‘2‘, ‘3‘] lt = [1,

VIM常見用法總結

變量 閱讀 meta vim gui 其中 red 字段排序 復制 歡迎和大家交流技術相關問題: 郵箱: [email protected] 博客園地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://gith

float 常見用法與問題--摘抄

介紹 清除浮動 遇到的問題 size utf 在線 span eas images float 屬性絕對是眾多切圖仔用的最多的 CSS 屬性之一,它的用法很簡單,常用值就 left、right、none 三個,但是它的特性你真的弄懂了嗎? 我會在這裏介紹我對 float 的

js數組中foEach和map用法詳解 jq中的$.each和$.map

cnblogs arr 對象 cal for index source asc 原生js 數組中foEach和map的用法詳解 相同點: 1.都是循環遍歷數組(僅僅是數組)中的每一項。 2.forEach() 和 map() 裏面每一次執行匿名函數都支持3個參數:數組中的

opensuse軟件安裝之zypper常見用法

pen .com 安裝 use open targe gpo arch www https://www.cnblogs.com/xiangzi888/archive/2012/03/10/2388597.htmlopensuse軟件安裝之zypper常見用法