一、常用方法

image.png

  1. package Map.javase;
  2. import java.util.Collection;
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. public class MapTest01 {
  6. public static void main(String[] args) {
  7. //创建对象
  8. Map<Integer,String> map = new HashMap<>();
  9. //向集合中添加键值对
  10. map.put(1,"zhangsan");
  11. map.put(2,"lisi");
  12. map.put(3,"wangwu");
  13. map.put(4,"zhaoliu");
  14. //通过key获取value
  15. String value = map.get(2);
  16. System.out.println(value);
  17. //获取键值对数量
  18. System.out.println("键值对的数量"+ map.size());
  19. //通过key删除key-value
  20. map.remove(2);
  21. System.out.println("键值对的数量"+ map.size());
  22. //判断是否包含某个key
  23. //contains方法底层调用的都是equals进行比对,所以自定义的类型需要重写equals
  24. System.out.println(map.containsKey(4));
  25. //判断是否包含某个value
  26. System.out.println(map.containsValue("wangwu"));
  27. //获取所有的value
  28. Collection<String> values = map.values();
  29. for (String s : values){
  30. System.out.println(s);
  31. }
  32. //清空map集合
  33. map.clear();
  34. System.out.println("数量"+map.size());
  35. //判断是否为空
  36. System.out.println(map.isEmpty());
  37. }
  38. }

二、Map集合的遍历(Map.Entry)

  1. package Map.javase;
  2. import java.util.HashMap;
  3. import java.util.Iterator;
  4. import java.util.Map;
  5. import java.util.Set;
  6. /*
  7. Map集合的遍历
  8. */
  9. public class MapTest02 {
  10. public static void main(String[] args) {
  11. //第一方式:获取所有的key,通过key遍历
  12. Map<Integer,String> map = new HashMap<>();
  13. map.put(1,"zhangsan");
  14. map.put(2,"lisi");
  15. map.put(3,"wangwu");
  16. map.put(4,"zhaoliu");
  17. //遍历map集合
  18. //获取所有的key,所有的key是一个set集合
  19. Set<Integer> keys = map.keySet();
  20. //遍历key
  21. //迭代器
  22. Iterator<Integer> it = keys.iterator();
  23. while (it.hasNext()){
  24. Integer key = it.next();
  25. String value = map.get(key);
  26. System.out.println(key + "=" + value);
  27. }
  28. //foreach
  29. for(Integer key : keys){
  30. System.out.println(key + "=" + map.get(key));
  31. }
  32. //第二种方法:Set<Map.Entry<K,V>> entrySet()
  33. //这个方法是把Map集合直接全部转换成Set集合
  34. //Set集合中元素的类型是:Map.Entry
  35. Set<Map.Entry<Integer,String>> set = map.entrySet();
  36. /*
  37. 遍历Set集合,每一次取出一个Node
  38. */
  39. //迭代器遍历
  40. // Iterator<Map.Entry<Integer,String>> it2 = set.iterator();
  41. //
  42. // while (it2.hasNext()){
  43. // Map.Entry<Integer,String> node = it2.next();
  44. // Integer key = node.getKey();
  45. // String value = node.getValue();
  46. // System.out.println(key + "=" + value);
  47. // }
  48. //foreach
  49. //这种方式适合处理大数据
  50. for (Map.Entry<Integer,String> node : set){
  51. System.out.println(node.getKey()+"--->"+node.getValue());
  52. }
  53. }
  54. }