java学习笔记_Java学习笔记day11
Map集合
java.util.Map<k,v>集合
Map集合特點:
1.Map集合是一個雙列集合,一個元素包含兩個值(一個key,一個value)
2.Map集合中的元素,key和value的數據類型可以相同,也可以不同
3.Map集合中掉元素,key是不允許重復的,value是可以重復的
4.Map集合中掉元素,key和value是一一對應的
java.util.HashMap<k,v>集合 implements Map<k,v>接口
HashMap集合的特點:
1.HashMap集合底層是哈希表:查詢的速度特別快
JDK1.8之前:數組+單向鏈表
JDK1.8之后:數組+單向鏈表/紅黑樹(鏈表長度超過8):提高查詢的速度
2.hashMap集合是一個無序集合,存儲元素和取出怨怒是的順序可能不一致
java.util.LinkedHashMap<k,v>集合 extends HashMap<k,v>集合
1.LinkedHashMap集合底層是哈希表+鏈表(保證迭代的順序)
2.LinkedHashMap集合是一個有序集合,存儲元素和取出元素的順序是一致的
Map集合的第一種遍歷方式:通過鍵找值的方式
Map集合中的方法:
Set<K> keySet() 返回此映射中包含的鍵的Set視圖
實現步驟:
1.使用Map集合中的方法keySet(),把Map集合中所有的Key取出來,存儲到一個Set集合中
2.遍歷Set集合,獲取Map集合中的每一個Key
3.通過Map集合中的方法get(key),通過key找到value
Map集合遍歷的第二種方式:使用Entry對象遍歷
Map集合中的方法:
1.Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射關系的視圖
實現步驟:
1.使用Map集合中的方法entrySet(),把Map集合中多個Entry對象取出來,存儲到一個Set集合中
2.遍歷Set集合,獲取每一個Entry對象
3.使用Entry對象中的方法getKey()和getValue()獲取鍵與值
HashMap存儲自定義類型鍵值
Map集合保證key是唯一的:
作為key的元素,必須重寫hashCode方法和equals方法,以保證key唯一
Person類
importLinkedHashMap集合
java.util.LinkedHashMap<K,V> extends HashMap<K,V>
Map接口的哈希表和鏈接列表實現,具有可預知的迭代器順序
底層原理:
哈希表+鏈表(記錄元素的順序)
Hashtable集合
java.util.Hashtable<K,V>集合 implements Map<K,V>接口
Hashtable:底層也是一個哈希表,是一個線程安全的集合,是單線程集合,速度慢
HashMap:底層是一個哈希表,是一個線程不安全的集合,是多線程集合,速度快
HashMap集合(之前學的所有的集合):可以存儲null值,null鍵
Hashtable結婚,不能存儲null值,null鍵
Hashtable和Vector集合一樣,在jdk1.2版本之后被更先進的(HashMap,ArrayList)取代
Hashtable的子類Properties依然活躍在歷史舞臺
Properties集合是唯一和IO流相結合的集合
JDK9新特性
lis接口,Set接口,Map接口:增加了一個靜態方法of,可以給集合一次性添加多個元素
static <E> list<E> of (E.. elements)
使用前提:
當集合中存儲的元素的個數已經去欸的那個了,不再改變時使用
注意:
1.of方法只適用于list接口,Set接口,Map接口,不適用于接口的實現類
2.of方法的返回值是一個不可改變的集合,集合不必不能再使用add,put方法添加元素,否則會拋異常
3.Set接口和Map接口在調用of方法的時候,不能有重復元素,否則會拋出異常
Debug調試代碼
HashTable和HashMap的區別詳解 - 割肉機 - 博客園?www.cnblogs.com總結
以上是生活随笔為你收集整理的java学习笔记_Java学习笔记day11的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 域名linux(域名 linux)
- 下一篇: 将serversocket 写在按钮事件