257-261 Map集合

257 Map集合概述和特点

interface Map<K,V> extends util

K,Map里键(key)的类型

V,Map里值(value)的类型

键值对

将键映射到值的对象,不能包含重复的键,每个键可以映射到最多1个值

·

例如,学号和姓名

- student001 李磊

- student002 韩梅梅

- student003 刘娟

创建Map集合的对象,1.使用多态的方式,2.具体的实现类是HashMap

Map里键是唯一的,两键相同时,后期出现的键会替换前期出现的键

--------------------------------------------------------------

package e257;

import java.util.HashMap;

import java.util.Map;

public class MapDemo01 {

    public static void main(String[] args) {

        Map<String,String> m = new HashMap<String,String>();

//        Map里面没有add方法,Map集合添加元素用put方法

        m.put("2021001","TRACY");

        m.put("2021002","RAT");

        m.put("2021003","BADGER");

        m.put("2021003","TOAD");

        System.out.println(m);

//添加TOAD前,{2021003=BADGER, 2021002=RAT, 2021001=TRACY}

//添加TOAD后,{2021003=TOAD, 2021002=RAT, 2021001=TRACY},学号003处,TOAD替换了BADGER

//---Map里键是唯一的,两键相同时,后期出现的键会替换前期出现的键

    }

}

258 Map集合的基本功能

【Map集合的基本功能】

方法名

说明

1

V put(K key,V value)

2

V remove(Object key)

根据键删除键值对

3

void clear()

4

boolean containsKey(Object key)

5

boolean containsValue(Object key)

6

boolean isEmpty()

7

int size()

package e258;

import java.util.HashMap;

import java.util.Map;

public class MapDemo {

    public static void main(String[] args) {

        Map<String,String> m = new HashMap<String,String>();

        m.put("ROBBIE","CECILIA");

        m.put("ICHIGO","RUKIA");

        m.put("GIN","RANGIKU");

        System.out.println("\t原始数据");

        System.out.println(m);//{ICHIGO=RUKIA, ROBBIE=CECILIA, GIN=RANGIKU}

        System.out.println("\tmap的size");

        System.out.println(m.size());

        System.out.println("\t是否包含键ROBBIE?");

        System.out.println(m.containsKey("ROBBIE"));

        System.out.println("\t是否包含值CECILIA?\n");

        System.out.println(m.containsValue("CECILIA"));

        System.out.println("\t删除ROBBIE,ROBBIE是键");

        System.out.println(m.remove("ROBBIE"));//CECILIA

        System.out.println(m);//{ICHIGO=RUKIA, GIN=RANGIKU}

        System.out.println("\t删除RUKIA,RUKIA是值");

        System.out.println(m.remove("RUKIA"));//null

        System.out.println(m);//{ICHIGO=RUKIA, GIN=RANGIKU},无效操作,什么也没删除,只能用键删除,不能用值删除

        System.out.println("\t集合是否为空?");

        System.out.println(m.isEmpty());

        System.out.println("\t清除集合所有元素");

        m.clear();

        System.out.println(m);

        System.out.println("\t现在集合应该是空的了?");

        System.out.println(m.isEmpty());

    }

}

259 Map集合的获取功能

【Map集合的获取功能】

方法名

说明

1

V get(Object key)

get()

根据键获取值,返回V

2

Set<K>keySet()

keySet()

获取所有键的集合,返回Set

3

Collection<V> values()

values()

获取所有值的集合,返回Collection

4

Set<Map.Entry<K,V>>entrySet()

entrySet()

获取所有键值对对象的集合,返回

1 package e259;

2

3 import java.util.Collection;

4 import java.util.HashMap;

5 import java.util.Map;

6 import java.util.Set;

7

8 public class MapDemo {

9     public static void main(String[] args) {

10         Map<String,String> m = new HashMap<String,String>();

11         m.put("ROBBIE","CECILIA");

12         m.put("ICHIGO","RUKIA");

13         m.put("GIN","RANGIKU");

14         System.out.println("\t14.原始数据");

15         System.out.println(m);

16

17         System.out.println("\t17.根据键ROBBIE获取值CECILIA");

18         System.out.println(m.get("ROBBIE"));;

19

20         System.out.println("\t20.不存在的键,返回什么?");

21         System.out.println(m.get("AVA"));

22

23         System.out.println("\t23.获取所有键的集合");

24         System.out.println(m.keySet());

25

26         System.out.println("\t26.遍历输出所有的键");

27         Set<String> keySet = m.keySet();

28         for (String keyy:keySet){

29             System.out.println(keyy);

30         }

31

32         System.out.println("\t32.获取所有值的集合");

33         System.out.println(m.values());

34

35         System.out.println("\t35.遍历输出所有的值");

36         Collection<String> vvv = m.values();

37         for (String vv : vvv){

38             System.out.println(vv);

39         }

40

41         System.out.println("\t41.获取所有键值对对象的集合");

42         System.out.println(m.entrySet());

43

44         System.out.println("\t44.遍历输出所有的键值对(这是260课的内容)");

45         Set<String> j = m.keySet();

46         for (String jian : keySet){

47             String zhi = m.get(jian);

48             System.out.println(jian+","+zhi);

49         }

50

51         System.out.println("\t51.遍历输出所有的键值对(这是261课的内容)");

52         Set<Map.Entry<String,String>> eses = m.entrySet();

53         System.out.println("\t\t53.先输出下键值对集合");

54         System.out.println(eses);

55         System.out.println("\t\t55.最后,遍历输出所有的键值对");

56         for (Map.Entry<String,String> meme : eses){

57             String jian = meme.getKey();

58             String zhi = meme.getValue();

59             System.out.println(jian+","+zhi);

60         }

61     }

62 }

--------------------------------------------------------------

14.原始数据

{ICHIGO=RUKIA, ROBBIE=CECILIA, GIN=RANGIKU}

17.根据键ROBBIE获取值CECILIA

CECILIA

20.不存在的键,返回什么?

null

23.获取所有键的集合

[ICHIGO, ROBBIE, GIN]

26.遍历输出所有的键

ICHIGO

ROBBIE

GIN

32.获取所有值的集合

[RUKIA, CECILIA, RANGIKU]

35.遍历输出所有的值

RUKIA

CECILIA

RANGIKU

41.获取所有键值对对象的集合

[ICHIGO=RUKIA, ROBBIE=CECILIA, GIN=RANGIKU]

44.遍历输出所有的键值对(这是260课的内容)

ICHIGO,RUKIA

ROBBIE,CECILIA

GIN,RANGIKU

51.遍历输出所有的键值对(这是261课的内容)

53.先输出下键值对集合

[ICHIGO=RUKIA, ROBBIE=CECILIA, GIN=RANGIKU]

55.最后,遍历输出所有的键值对

ICHIGO,RUKIA

ROBBIE,CECILIA

GIN,RANGIKU

260 Map集合的遍历(方式1)

【方式1】

- 把所有的键集中起来

- 遍历键的集合,获取到每一个键

- 根据键找到对应的值

【思路】

- keySet()获取所有键的集合

- 用增强for遍历键的集合,

- get(Object kay)根据键找到对应的值

--------------------------------------------------------------

这节课的代码汇总到了259的代码里面,行号44

261 Map集合的遍历(方式2)

【方式2】

获取键值对集合

遍历键值对集合,获取每一个键值对

根据键值对获取键和值

【思路】

(查看帮助文档可知)

getKey()获取键值对当中的键

getValue()获取键值对当中的值

--------------------------------------------------------------

详见259的代码,行号51

Guess you like

Origin blog.csdn.net/m0_63673788/article/details/121416204