HashMap的基本使用
常用方法
首先,我们应该知道HashMap类实现了Map接口,所以实现了Map常用的一些方法。
(1) 插入键值对数据
public V put(K key, V value)
(2)根据键值获取键值对值数据
public V get(Object key)
(3)获取Map中键值对的个数
public int size()
(4)判断Map集合中是否包含键为key的键值对
public boolean containsKey(Object key)
(5)判断Map集合中是否包含值为value的键值对
boolean containsValue(Object value)
(6)判断Map集合中是否没有任何键值对
public boolean isEmpty()
(7)清空Map集合中所有的键值对
public void clear()
(8)根据键值删除Map中键值对
public V remove(Object key)
示例
1 import java.util.HashMap; 2 import java.util.Map; 3 4 public class Demo01 { 5 6 public static void main(String[] args) { 7 // 声明HashMap对象 8 Map<String,Integer> map= new HashMap<>(); 9 10 //添加数据 11 map.put("ZhangYi",98); 12 map.put("WangEr",99); 13 map.put("ZhangShan",89); 14 map.put("Lisi",92); 15 16 //根据键值对键值获取数据‘’ 17 int value=map.get("Lisi"); 18 System.out.println("kay:Lisi And value:"+value); 19 20 //获取Map中键值对的个数 21 int size=map.size(); 22 System.out.println("map 中的键值对个数为:"+size); 23 24 //判断Map集合中是否包含键为key的键值对 25 boolean b1=map.containsKey("LiSI"); 26 boolean b2=map.containsKey("Lisi"); 27 System.out.println("是否包含键值为LiSI的键值对数据:"+b1); 28 System.out.println("是否包含键值为Lisi的键值对数据:"+b2); 29 30 //判断Map集合中是否包含值为value的键值对 31 boolean b3=map.containsValue(99); 32 boolean b4=map.containsValue(100); 33 System.out.println("是否包含值为99的键值对数据:"+b3); 34 System.out.println("是否包含值为100的键值对数据:"+b4); 35 36 //判断Map集合中是否没有任何键值对 37 38 boolean b5=map.isEmpty(); 39 System.out.println("map中键值对数据是否为空:"+b5); 40 41 //根据键值删除Map中键值对 42 int value2=map.remove("Lisi"); 43 System.out.println("删除了键为Lisi的键值对数据,其值为:"+value2); 44 45 boolean b6=map.containsKey("Lisi"); 46 System.out.println("是否包含键值为Lisi的键值对数据:"+b6); 47 48 //清空Map集合中所有的键值对 49 map.clear(); 50 boolean b7=map.isEmpty(); 51 System.out.println("map中键值对数据是否为空:"+b7); 52 53 } 54 }
输出结果为:
kay:Lisi And value:92 map 中的键值对个数为:4 是否包含键值为LiSI的键值对数据:false 是否包含键值为Lisi的键值对数据:true 是否包含值为99的键值对数据:true 是否包含值为100的键值对数据:false map中键值对数据是否为空:false 删除了键为Lisi的键值对数据,其值为:92 是否包含键值为Lisi的键值对数据:false map中键值对数据是否为空:true
键值对数据遍历
(1)将Map中所有的键装到Set集合中返回
//public Set<K> keySet();
Set<K> set=map. keySet()
(2)返回集合中所有的value的值的集合
// public Collection<V> values();
Collection<V> c=map.values()
(3)将每个键值对封装到一个个Entry对象中,再把所有Entry的对象封装到Set集合中返回
// public Set<Map.Entry<K,V>> entrtSet();
Set<Map.Entry<K,V>> entrys=map.entrySet()
示例:
1 import java.util.Collection; 2 import java.util.HashMap; 3 import java.util.Map; 4 import java.util.Set; 5 6 public class Demo02 { 7 public static void main(String[] args) { 8 // 声明HashMap对象 9 Map<String,Integer> map= new HashMap<>(); 10 11 //添加数据 12 map.put("ZhangYi",98); 13 map.put("WangEr",99); 14 map.put("ZhangShan",89); 15 map.put("Lisi",92); 16 17 //(1)将Map中所有的键装到Set集合中返回 18 Set<String> keys=map.keySet(); 19 for(String key:keys){ 20 int value=map.get(key); 21 System.out.println("key:"+key+" and value:"+value); 22 } 23 24 //(2)返回集合中所有的value的值的集合 25 Collection<Integer> values=map.values(); 26 for(int value:values){ 27 System.out.print(value+" "); 28 } 29 System.out.println(); 30 31 //(3)将每个键值对封装到一个个Entry对象中,再把所有Entry的对象封装到Set集合中返回 32 Set<Map.Entry<String,Integer>> entries=map.entrySet(); 33 for(Map.Entry<String,Integer> entry :entries){ 34 String key=entry.getKey(); 35 int value=entry.getValue(); 36 System.out.println("key:"+key+" and value:"+value); 37 } 38 } 39 40 }
输出结果为:
key:Lisi and value:92 key:ZhangYi and value:98 key:ZhangShan and value:89 key:WangEr and value:99 92 98 89 99 key:Lisi and value:92 key:ZhangYi and value:98 key:ZhangShan and value:89 key:WangEr and value:99