Map和Mapkey及Maplt;String, ?gt;的区别

2023-12-19 17:38
文章标签 string 区别 map gt mapkey maplt

本文主要是介绍Map和Mapkey及Maplt;String, ?gt;的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Map<key,value>是Map的一个泛型形式,两个Map之间实际上是一个东西,但是用法却有点不一样;

Map:里面存放的是键值对集合,键值对的类型可以是任意封装类型;

例:

Map map=new HashMap();
//以下的俩种使用方式都是对的
map.put("a",1);
map.put(2,"b");

 

而Map<key,value>:里面存放的也是键值对集合,但是类型只能是<>中指定的类型
例:
Map<String,Integer> map=new HashMap<String,Integer>();
map.put("a",1);//正确使用方式

map.put(2,"b");//错误使用方式,会导致无法通过编译

 

Map<String, ?>只能是只读模式,不能增加,因为增加的时候不知道该写入什么类型的值;Map<String, Object>可以读和写,只要是所有Object类的子类都可以。

putAll可以合并两个map,只不过如果有相同的key那么用后面的覆盖前面的;


//循环遍历请求的参数
        Map<String, String[]> tmp = req.getParameterMap();
        if (tmp != null) {
            for (String key : tmp.keySet()) {
                String[] values = tmp.get(key);
                //将循环的参数添加到Map中
                mapRes.put(key, values.length >= 1 ? values[0].trim() : null);
            }
        }
        
/**
     * 将传入的Map的Key值转为驼峰命名,并保留原值
     * @param paramMap
     * @return
     */
    public static Map<String, Object> getMap(Map<String, Object> paramMap){
        Map<String, Object> resMap = new HashMap<String, Object>();
        if(null == paramMap){
            return null;
        }
        
        Set<String> keySet  = paramMap.keySet();
        Iterator<String> it = keySet.iterator();
        String Keys         = null;
        Object Vals         = null;
        while(it.hasNext()){
            Keys= it.next();
            Vals = paramMap.get(Keys);
            
            Keys = underLine2Camel(Keys);
            resMap.put(Keys,Vals);
        }
        
        resMap.putAll(paramMap);
        
        return resMap;
    }

 

这篇关于Map和Mapkey及Maplt;String, ?gt;的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/513090

相关文章

Before和BeforeClass的区别及说明

《Before和BeforeClass的区别及说明》:本文主要介绍Before和BeforeClass的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Before和BeforeClass的区别一个简单的例子当运行这个测试类时总结Before和Befor

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

java String.join()方法实例详解

《javaString.join()方法实例详解》String.join()是Java提供的一个实用方法,用于将多个字符串按照指定的分隔符连接成一个字符串,这一方法是Java8中引入的,极大地简化了... 目录bVARxMJava String.join() 方法详解1. 方法定义2. 基本用法2.1 拼接

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

Java 关键字transient与注解@Transient的区别用途解析

《Java关键字transient与注解@Transient的区别用途解析》在Java中,transient是一个关键字,用于声明一个字段不会被序列化,这篇文章给大家介绍了Java关键字transi... 在Java中,transient 是一个关键字,用于声明一个字段不会被序列化。当一个对象被序列化时,被

解读@ConfigurationProperties和@value的区别

《解读@ConfigurationProperties和@value的区别》:本文主要介绍@ConfigurationProperties和@value的区别及说明,具有很好的参考价值,希望对大家... 目录1. 功能对比2. 使用场景对比@ConfigurationProperties@Value3. 核

Spring Boot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)

《SpringBoot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)》:本文主要介绍SpringBoot拦截器Interceptor与过滤器Filter深度解析... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实

关于Mybatis和JDBC的使用及区别

《关于Mybatis和JDBC的使用及区别》:本文主要介绍关于Mybatis和JDBC的使用及区别,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、JDBC1.1、流程1.2、优缺点2、MyBATis2.1、执行流程2.2、使用2.3、实现方式1、XML配置文件