Java中关于Map四种取值方式

作者:于歌852 时间:2022-04-22 09:24:09 

Java关于Map的四种取值方式

map的主要作用是什么?

可以通过创建一个map的实现类 来存放 数据 值 和值的描述 也可以通过描述去取得数据

将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口。

Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序。某些映射实现可明确保证其顺序,如 TreeMap 类;另一些映射实现则不保证顺序,如HashMap 类。

Map的取值方式主要有4种:

1.keySet二次取值;

2.entrySet使用iterator遍历key和value

3.entrySet遍历key和value

4.通过Map.values()遍历所有的value,但不能遍历key

public static void main(String[] args) {

Map<String, String> map = new HashMap<String, String>();
       map.put("1", "value1");
       map.put("2", "value2");
       map.put("3", "value3");

// 第一种方法:普遍使用,二次取值
       System.out.println("通过Map.keySet遍历key和value:");
       for (String key : map.keySet()) {
           System.out.println("key= " + key + " and value= " + map.get(key));
       }

// 第二种方法:
       System.out.println("通过Map.entrySet使用iterator遍历key和value:");
       Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
       while (it.hasNext()) {
           Map.Entry<String, String> entry = it.next();
           System.out.println("key= " + entry.getKey() + " and value= "
                   + entry.getValue());
       }

// 第三种方法:推荐,尤其是容量大时
       System.out.println("通过Map.entrySet遍历key和value");
       for (Map.Entry<String, String> entry : map.entrySet()) {
           System.out.println("key= " + entry.getKey() + " and value= "
                   + entry.getValue());
       }

// 第四种方法:
       System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
       for (String v : map.values()) {
           System.out.println("value= " + v);
       }
   }

Java中Map取值转String Null值处理

Map<String, Object> 直接取值转String

String value = (String)map.get("key")

当map.get(&ldquo;key&rdquo;)为Null值时会报错。

使用String类的valueOf静态方法可以解决这个问题

String value = String.valueOf(map.get("key"))

来源:https://blog.csdn.net/weixin_56287335/article/details/124670957

标签:Java,Map,取值
0
投稿

猜你喜欢

  • Go Java算法之K个重复字符最长子串详解

    2022-02-10 17:53:29
  • 带你了解Java数据结构和算法之队列

    2022-07-03 12:45:34
  • Java正则之贪婪匹配、惰性匹配

    2022-08-14 16:41:23
  • C#记一次http协议multipart/form-data的boundary问题

    2021-07-01 17:45:49
  • 关于mybatis resulttype 返回值异常的问题

    2021-08-09 20:26:19
  • Android使用httpPost向服务器发送请求的方法

    2021-12-08 19:37:07
  • 浅述int与string类型转换的两种方法

    2023-09-09 08:56:28
  • 详解Java设计模式编程中的中介者模式

    2021-09-24 02:48:54
  • Spring Security 控制授权的方法

    2023-08-06 19:21:08
  • 详解java 中Spring jsonp 跨域请求的实例

    2023-11-19 02:48:18
  • SpringBoot中@ConfigurationProperties 配置绑定

    2023-04-07 04:02:57
  • JPype实现在python中调用JAVA的实例

    2022-08-24 03:19:52
  • Java结构性设计模式中的装饰器模式介绍使用

    2022-04-08 06:30:00
  • Java中的Object类详细介绍

    2023-11-23 23:18:46
  • Java利用位运算实现乘法运算详解

    2023-03-19 20:29:24
  • MyBatis执行Sql的流程实例解析

    2022-06-12 19:43:42
  • Java内存溢出案例模拟和原理分析过程

    2023-04-09 07:27:48
  • Android开发性能优化总结

    2021-11-05 14:03:59
  • C#实现自定义动画鼠标的示例详解

    2021-07-31 17:16:59
  • Java泛型中<?>和<T>的区别浅析

    2023-11-25 05:20:09
  • asp之家 软件编程 m.aspxhome.com