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

相关文章

Java字符串处理全解析(String、StringBuilder与StringBuffer)

《Java字符串处理全解析(String、StringBuilder与StringBuffer)》:本文主要介绍Java字符串处理全解析(String、StringBuilder与StringBu... 目录Java字符串处理全解析:String、StringBuilder与StringBuffer一、St

go 指针接收者和值接收者的区别小结

《go指针接收者和值接收者的区别小结》在Go语言中,值接收者和指针接收者是方法定义中的两种接收者类型,本文主要介绍了go指针接收者和值接收者的区别小结,文中通过示例代码介绍的非常详细,需要的朋友们下... 目录go 指针接收者和值接收者的区别易错点辨析go 指针接收者和值接收者的区别指针接收者和值接收者的

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘

分辨率三兄弟LPI、DPI 和 PPI有什么区别? 搞清分辨率的那些事儿

《分辨率三兄弟LPI、DPI和PPI有什么区别?搞清分辨率的那些事儿》分辨率这个东西,真的是让人又爱又恨,为了搞清楚它,我可是翻阅了不少资料,最后发现“小7的背包”的解释最让我茅塞顿开,于是,我... 在谈到分辨率时,我们经常会遇到三个相似的缩写:PPI、DPI 和 LPI。虽然它们看起来差不多,但实际应用