Java Map接口 (推薦學習:java課程)
java.util.Map 接口 查找表
Map 體現(xiàn)的結構是一個多行兩列的表格,左列稱為key 右列稱為value. Map 總是根據(jù)key來獲取對應的value.因此保存數(shù)據(jù)時是成對保存的,并且應當將查詢的數(shù)據(jù)作為value查詢條件作為key進行保存. Map要求key 不允許重復(equals 比較判定)
常用的實現(xiàn)類
java.util.HashMap,散列表,哈希表
查詢速度最快的數(shù)據(jù)結構
基本用法
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不允許重復,所以若 * 使用重復的key存儲則是替換value操作 * 那么返回值就是該key原來對應的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獲取對應的value * 若給定的key不存在則返回值為null */ value =map.get("攻擊"); System.out.println(value);//60 /* * V remove(Object key) * 刪除當前Map中給定的key所對應的鍵值對 * 返回值為該key對應的value */ value = map.remove("攻擊"); System.out.println(map); System.out.println(value); /* * int size() * 返回Map中的元素個數(shù) */ int size = map.size(); System.out.println(size); /* * 判斷當前Map是否包含給定的key或value */ boolean ck = map.containsKey("攻速"); System.out.println("包含key:"+ck); boolean cv = map.containsValue(96); System.out.println("包含value:"+cv); } }
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ù)學", 98); map.put("英語", 97); map.put("物理", 96); map.put("化學", 99); System.out.println(map); /* * 遍歷所有的key * Set keySet() * 將當前Map中所有的key以一個Set集合 * 形式返回.遍歷該集合等同于遍歷了所有 * 的key */ Set<String> keySet = map.keySet(); for(String key : keySet) { System.out.println("key:"+key); } /* * 遍歷每一組鍵值對 * Set entrySet() * 將當前Map中每一組鍵值對以一個Entry實例 * 存入Set集合并返回. * * java.util.Map.Entry * Entry的每一個實例用于表示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); } } }