<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Map<鍵的泛型,值的泛型> 集合名=new 實現類名<鍵的泛型,值的泛型>();
tips:一個鍵值對才是一個元素
程式碼舉例:
public class Test { public static void main(String[] args) { //數位-String 1 - 一 1 - yi Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "一"); map.put(111, "yiyiyi"); map.put(666, "liuliuliu"); map.put(111, "一一一"); System.out.println(map.containsKey(678));//f System.out.println(map.containsValue("yiyiyi"));//t System.out.println(map.get(111)); map.remove(666); System.out.println(map.get(666)); System.out.println(map.size());//2 } }
1、keySet()+get()
//獲取所有鍵 Set<鍵的泛型> set=集合名.keySet(); //遍歷所有鍵 set.forEach( o-> //o就代表當前正在被遍歷的鍵 //通過集合名.get(o)可以得到對應的值 ); 如: Map<Integer, String> map = new HashMap<>(); map.put(123, "yiersan"); map.put(234, "ersansi"); map.put(456, "siwuliu"); map.put(999, "jiujiujiu"); Set<Integer> set=map.keySet(); set.forEach(o-> System.out.println("鍵:"+o+",值:"+map.get(o)));
2、values()
Collection<值的泛型> coll = 集合名.values(); coll.forEach(v-> v就代表當前的值); 如: Collection<String> coll = map.values(); coll.forEach(v-> System.out.println(v));
3、entrySet()
//獲取鍵值對物件集合 Set<Map.Entry<鍵的泛型,值的泛型>> set2=集合名.entrySet(); for (Map.Entry entry : set2) { //通過entry.getKey()獲取鍵 //通過entry.getValue()獲取值 } 如: Set<Map.Entry<鍵的泛型,值的泛型>> set2=集合名.entrySet(); for (Map.Entry entry : set2) { System.out.println("鍵:"+entry.getKey()+",值:"+entry.getValue()) } System.out.println("lambda自遍歷:"); set2.forEach(entry-> System.out.println("鍵:"+entry.getKey()+",值:"+entry.getValue()));
4、自遍歷forEach
JDK8.0
集合名.forEach(new BiConsumer<鍵的泛型, 值的泛型>() { @Override public void accept(鍵的泛型 i, 值的泛型 s) { //i代表鍵 //s代表值 } }); System.out.println("lambda簡化自遍歷:"); map.forEach((k,v)-> k代表鍵,v代表值); 如: map.forEach(new BiConsumer<Integer, String>() { @Override public void accept(Integer i, String s) { System.out.println("鍵:"+i+",值:"+s); } }); System.out.println("lambda簡化自遍歷:"); map.forEach((k,v)-> System.out.println("鍵:"+k+",值:"+v));
補充:Java Map集合面試題彙總
1、 你都知道哪些常用的Map集合?
HashMap、HashTable、LinkedHashMap、ConcurrentHashMap。
2、Collection集合介面和Map介面有什麼關係?
沒關係,Collection是List、Set父介面不是Map父介面。
3、HashMap是執行緒安全的嗎?執行緒安全的Map都有哪些?效能最好的是哪個?
HashMap不是執行緒安全的。執行緒安全的有HashTable、ConcurrentHashMap、SynchronizedMap,效能最好的是ConcurrentHashMap。
4、使用HashMap有什麼效能問題嗎?
使用HashMap要注意避免集合的擴容,它會很耗效能,根據元素的數量給它一個初始大小的值。
5、HashMap的資料結構是怎樣的?預設大小是多少?內部是怎麼擴容的?
HashMap是陣列和連結串列組成的,預設大小為16,當hashmap中的元素個數超過陣列大小*loadFactor(預設值為0.75)時就會把陣列的大小擴充套件為原來的兩倍大小,然後重新計算每個元素在陣列中的位置。
6、怎麼按新增順序儲存元素?怎麼按A-Z自然順序儲存元素?怎麼自定義排序?
按新增順序使用LinkedHashMap,按自然順序使用TreeMap,自定義排序TreeMap(Comparetor c)。
7、HashMap的連結串列結構設計是用來解決什麼問題的?
HashMap的連結串列結構設計是用來解決key的hash衝突問題的。
8、HashMap的鍵、值可以為NULL嗎?HashTable呢?
HashMap的鍵值都可以為NULL,HashTable不行。
9、HashMap使用物件作為key,如果hashcode相同會怎麼處理?
key的hash衝突,如果key equals一致將會覆蓋值,不一致就會將值儲存在key對應的連結串列中。
10、HashMap中的get操作是什麼原理?
先根據key的hashcode值找到對應的連結串列,再回圈連結串列,根據key的hash是否相同且key的==或者equals比較操作找到對應的值。
到此這篇關於Java中Map介面使用以及有關集合的面試知識點彙總的文章就介紹到這了,更多相關Java中Map介面使用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45