您好,登錄后才能下訂單哦!
這篇文章運(yùn)用簡單易懂的例子給大家介紹Java中Map的使用方法,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
在JAVA中,map接口提供的集合又稱為查找表。
Map 接口定義的集合又稱為查找表,用于存儲(chǔ)所謂"key-value"映射對。Key可以看成是Value 的索引,作為key的對象在集合中不可重復(fù)。
根據(jù)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的不同,Map 接口有多種實(shí)現(xiàn)類,其中常用的有內(nèi)部為hash 表實(shí)現(xiàn)的 HashMap 和內(nèi)部為排序二叉樹實(shí)現(xiàn)的TreeMap。
java.util.Map 接口 查找表
Map 體現(xiàn)的結(jié)構(gòu)是一個(gè)多行兩列的表格,左列稱為key 右列稱為value. Map 總是根據(jù)key來獲取對應(yīng)的value.因此保存數(shù)據(jù)時(shí)是成對保存的,并且應(yīng)當(dāng)將查詢的數(shù)據(jù)作為value查詢條件作為key進(jìn)行保存. Map要求key 不允許重復(fù)(equals 比較判定)
常用的實(shí)現(xiàn)類
java.util.HashMap,散列表,哈希表
查詢速度最快的數(shù)據(jù)結(jié)構(gòu)
Map的遍歷
import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; /** * Map的遍歷 Map提供了三種遍歷方式: 1:遍歷所有的key 2:遍歷每一組鍵值對 3:遍歷所有的value(相對不常用) * */ public class MapDemo2 { public static void main(String[] args) { Map<String, Integer> map = new HashMap<>(); map.put("語文", 99); map.put("數(shù)學(xué)", 98); map.put("英語", 97); map.put("物理", 96); map.put("化學(xué)", 99); System.out.println(map); /* * 遍歷所有的key * Set keySet() * 將當(dāng)前Map中所有的key以一個(gè)Set集合 * 形式返回.遍歷該集合等同于遍歷了所有 * 的key */ Set<String> keySet = map.keySet(); for(String key : keySet) { System.out.println("key:"+key); } /* * 遍歷每一組鍵值對 * Set entrySet() * 將當(dāng)前Map中每一組鍵值對以一個(gè)Entry實(shí)例 * 存入Set集合并返回. * * java.util.Map.Entry * Entry的每一個(gè)實(shí)例用于表示Map中的一組 * 鍵值對 */ Set<Entry<String,Integer>> entrySet = map.entrySet(); for(Entry<String,Integer> e:entrySet) { String key = e.getKey(); Integer value = e.getValue(); System.out.println(key+":"+value); } } }
基本用法
public class MapDemo{ public static void main(String[] args){ Map<String,Integer>map = new HashMap<>(); /* * V put(K k,V v) * 將給定的key-value對存入Map * 由于Map要求key不允許重復(fù),所以若 * 使用重復(fù)的key存儲(chǔ)則是替換value操作 * 那么返回值就是該key原來對應(yīng)的value * 若給定的key不存在則返回值為null. */ map.put("攻擊",60); Integer value=map.put("攻速",8); System.out.println(value); // null value=map.put("攻速",6); System.out.println(value); // 8 /* * V get(Object key) * 根據(jù)給定的key獲取對應(yīng)的value * 若給定的key不存在則返回值為null */ value =map.get("攻擊"); System.out.println(value);//60 /* * V remove(Object key) * 刪除當(dāng)前Map中給定的key所對應(yīng)的鍵值對 * 返回值為該key對應(yīng)的value */ value = map.remove("攻擊"); System.out.println(map); System.out.println(value); /* * int size() * 返回Map中的元素個(gè)數(shù) */ int size = map.size(); System.out.println(size); /* * 判斷當(dāng)前Map是否包含給定的key或value */ boolean ck = map.containsKey("攻速"); System.out.println("包含key:"+ck); boolean cv = map.containsValue(96); System.out.println("包含value:"+cv); } }
關(guān)于Java中Map的使用方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。