集合-----双列

Map

双列集合图解:

 

 Map集合概述:

  • Interface Map<K,V> K :键的数据类型; V :值得数据类型
  • 键不能重复,值可以重复
  • 键和值是一一对应的,通过键只能找到自己对应的值
  • 每一对键值被称为键值对或者Entry对象

Map集合简单添加代码如下:

  public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        map.put("001", "小美");
        String s1 = map.put("002", "小明");
        map.put("003", "小刚");
        map.put("004", "小强");
        map.put("005", "大壮");
        System.out.println(s1);
        String s = map.put("001", "大壮");//如果添加的元素的键值已经存在那么
        // 会将原来的值替换成新的值,并将原来的值返回,
        // 如果添加的键值不存在,则直接添加,返回值为null
        System.out.println(s);

        System.out.println(map);


    }

 

运行结果如下:

 

 

 

 

 

 

Map集合的删除代码如下:

 

 

        Map<String, String> map = new HashMap<>();
        map.put("001", "小美");
        map.put("002", "小明");
        map.put("003", "小刚");
        map.put("004", "小强");
        map.put("005", "大壮");
        String s = map.remove("001");//返回删除元素的值
        System.out.println(s);
        System.out.println(map);


    }

 

运行结果如下:

 

 

 

 Map集合移除所有元素的方法:

 1        Map<String, String> map = new HashMap<>();
 2         map.put("001", "小美");
 3         map.put("002", "小明");
 4         map.put("003", "小刚");
 5         map.put("004", "小强");
 6         map.put("005", "大壮");
 7       map.clear();//删除所有键值对对象
 8         System.out.println(map);
 9 
10 
11     }

 

运行结果如下:

 

 

 

 Map集合判断是否存在指定Key值:

代码如下:

 1     public static void main(String[] args) {
 2         Map<String, String> map = new HashMap<>();
 3         map.put("001", "小美");
 4         map.put("002", "小明");
 5         map.put("003", "小刚");
 6         map.put("004", "小强");
 7         map.put("005", "大壮");
 8         boolean b1= map.containsKey("001");//判断集合中是否存在指定的Key值,并返回boolean值
 9         boolean b2 = map.containsKey("009");
10         System.out.println(b1);
11         System.out.println(b2);
12 
13     }

 

运行结果: 

 

 

 

 

 Map集合判断是否存在指定值:

代码如下:

 

 

 1   public static void main(String[] args) {
 2         Map<String, String> map = new HashMap<>();
 3         map.put("001", "小美");
 4         map.put("002", "小明");
 5         map.put("003", "小刚");
 6         map.put("004", "小强");
 7         map.put("005", "大壮");
 8         boolean b1 = map.containsValue("小美");
 9         boolean b2 = map.containsValue("小小");//判断是否存在指定的值,并返回boolean值
10         System.out.println(b1);
11         System.out.println(b2);
12 
13     }

 

 

 运行结果:

 

 Map集合判断集合是否为空

代码如下:

 1  public static void main(String[] args) {
 2         Map<String, String> map = new HashMap<>();
 3         map.put("001", "小美");
 4         map.put("002", "小明");
 5         map.put("003", "小刚");
 6         map.put("004", "小强");
 7         map.put("005", "大壮");
 8         boolean empty = map.isEmpty();//判断Map集合是否为空
 9         map.clear();
10         boolean empty1 = map.isEmpty();
11         System.out.println(empty);
12         System.out.println(empty1);
13 
14     }

 

运行结果:

 

 

 

获得Map集合的键值对个数

代码如下:

1       Map<String, String> map = new HashMap<>();
2         map.put("001", "小美");
3         map.put("002", "小明");
4         map.put("003", "小刚");
5         map.put("004", "小强");
6         map.put("005", "大壮");
7         int size = map.size();//获得Map集合的键值对个数
8         System.out.println(size);
9     }

 

运行结果:

 

 

 Map集合的两种遍历方式:

第一种:使用keySet();方法获得存储所有键的Set集合然后用get();方法获得制定键对应的值

代码如下:

 1     public static void main(String[] args) {
 2         Map<String, String> map = new HashMap<>();
 3         map.put("001", "小美");
 4         map.put("002", "小明");
 5         map.put("003", "小刚");
 6         map.put("004", "小强");
 7         map.put("005", "大壮");
 8         Set<String> set = map.keySet();//keySet();获得所有的键的Set集合
 9         for (String s : set) {
10             String s1 = map.get(s);//get();方法获得指定键的值
11             System.out.println(s+"     "+s1);
12         }
13     }

 

 

 运行结果为:

 

 第二种:首先使用entrySet();方法获得所有的键值对对象,然后根据对象使用getKey();和

getValue();方法获得键和值;

代码如下:

 1  public static void main(String[] args) {
 2         Map<String, String> map = new HashMap<>();
 3         map.put("001", "小美");
 4         map.put("002", "小明");
 5         map.put("003", "小刚");
 6         map.put("004", "小强");
 7         map.put("005", "大壮");
 8         Set<Map.Entry<String, String>> entries = map.entrySet();//获得所有的键值对对象
 9         for (Map.Entry<String, String> entry : entries) {
10             String key = entry.getKey();//获得key值
11             String value = entry.getValue();//获得Value值
12             System.out.println(key+"    "+value);
13         }
14     }

 

 结果如下:

 

 

 HashMap(底层是hash表结构)

(hash表在数据结构中解释)

HashMap集合如果要存储自定义类对象必须要重写equals();和hashCode();方法

TreeMap(底层是红黑树)

(红黑树在数据结构中解释)

TreeMap集合自定义对象要使用自然排序或者比较器排序重写其中的方法。只对键进行排序

 

posted @ 2020-08-09 14:12  Joker-0927  阅读(208)  评论(0编辑  收藏  举报
// 侧边栏目录