集合之Map

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.Lucky.Map;
 
import java.util.HashMap;
import java.util.Map;
 
/*
      map接口: 无法new ,只能new他的实现类
 */
public class MapDemo {
    public static void main(String[] args) {
        // put(k key,v,value)                       :添加元素
        // remove(Object key)                       :移除元素
        //void clear()                              :清除集合元素
        //boolean containsKey(Object key)           :判断该键是否包含在该集合里面
        //boolean containsValue(Object Value)       :判断该值是否包含在该集合里面
        //boolean isEmpty()                         :判断集合是否为空
        //int size()                                :判断集合大小
 
 
 
          //创建Map集合
        Map<String,String> map=new HashMap<>();
 
        System.out.println("-------- put(K Key,V Value):  添加/覆盖----------------");
          /*
            put:  添加/覆盖
                   1.如果添加数据时,键不存在,就直接将数据添加到键值对对象里面,返回null
                   2.如果添加数据时,键已经存在,就将原有的键值对对象覆盖,返回被覆盖的值。
           */
        System.out.println(map.put("文艺人士","人生无常"));
        map.put("唯易人生","YYDS");
        map.put("不凭明天","只凭朝夕");
        map.put("测试代码","BUG");
        System.out.println(map.put("文艺人士","XXS")); //对原有的键值对对象进行覆盖操作
 
        System.out.println(map);
 
 
        System.out.println("-------- remove(K Key):移除元素----------------");
        System.out.println(map.remove("文艺人士"));   //返回移除的键值对的值
        System.out.println(map.remove("不凭明天","BUGCS"));  //键值对没有找到就返回false
 
 
        System.out.println("-------- containsKey(K Key):判断键值对是否包含在集合中----------------");
        System.out.println(map.containsKey("不凭明天"));
        System.out.println(map.containsValue("xxs"));
 
 
        System.out.println("-------- isEmpty():判断集合是否为空----------------");
        System.out.println(map.isEmpty());
 
        System.out.println(map.size());
        map.clear();
        System.out.println(map);
 
    }
 
 
 
}

 遍历Map集合的方法:

①keySet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.Lucky.Map;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
 
/*
      遍历获取Map集合的键值对
      1.通过键找值的方法:关键点:keySet();
 */
public class MapDemo1 {
    public static void main(String[] args) {
        Map<String,String> map=new HashMap<>();
 
 
        map.put("唯易人生","YYDS");
        map.put("不凭明天","只凭朝夕");
        map.put("测试代码","BUG");
 
        //生成Set集合获取Map集合的所有键
        final Set<String> strings = map.keySet();
 
 
        //1.利用增强for循环得到每一个键
        System.out.println("--------利用增强for循环得到每一个键----------");
        for (String str : strings) {  //str是键值对的键
            //再利用键找到所有的值
            String res=map.get(str);
            System.out.println(str+":"+res);
        }
 
 
 
         //2.利用增强迭代器得到每一个键
        System.out.println("--------利用增强迭代器得到每一个键-----------");
        Iterator<String> ite = strings.iterator();
        while (ite.hasNext()){
            //再利用键找到所有的值
            String key=ite.next();
            String val=map.get(key);
            System.out.println(key+":"+val);
        }
 
 
        //利用lamda表达式
        System.out.println("--------利用lamda表达式-----------");
        strings.forEach(str-> System.out.println(str+":"+map.get(str)));
 
    }
}

  

②entrySet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package com.Lucky.Map;
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
 
/*
    获取键值对的第二种方法: entrySet();或取整个键值对对象
 
 */
public class MapDemo2 {
    public static void main(String[] args) {
        Map<String,String> map=new HashMap<>();
 
        map.put("BUG","时刻存在");
        map.put("爱情BUG","NB");
        map.put("人生无常","大肠包小肠");
 
 
 
        //每天一个小知识:alt+enter == ctrl+alt+v
        Set<Map.Entry<String, String>> entries = map.entrySet();
 
 
        //遍历获取
        entries.forEach(str-> System.out.println(str.getKey()+":"+str.getValue()));
 
        for (Map.Entry<String, String> entry : entries) {
            System.out.println(entry.getKey()+":"+entry.getValue());
        }
 
        System.out.println("*********************");
        Iterator<Map.Entry<String, String>> iterator = entries.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
            }
    }
}

  

③forEach

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package com.Lucky.Map;
 
import java.util.HashMap;
import java.util.Map;
import java.util.function.BiConsumer;
 
/*
获取键值对的第三种方法: 直接forEach
 */
public class MapDemo3 {
    public static void main(String[] args) {
        Map<String,String> map=new HashMap<>();
 
        map.put("QWERT","DFGHJK");
        map.put("挨打杂货福","万能");
 
        map.forEach(new BiConsumer<String, String>() {
            @Override
            public void accept(String k, String v) {
                System.out.println(k+":"+v);
            }
        });
 
        //简化版
        map.forEach((String k, String v)->{
                System.out.println(k+":"+v);
            }
        );
 
        //最简版
        map.forEach((k,v)-> System.out.println(k+":"+v));
    }
}

  

 

posted @   唯易人生  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示