如何进行java在hashmap初始化时赋初值过程的解析

技术如何进行java在hashmap初始化时赋初值过程的解析如何进行java在hashmap初始化时赋初值过程的解析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习

很多新手对于初始化hashmap时如何分析给java赋值的过程不是很清楚。为了帮助大家解决这个问题,下面小编就为大家详细讲解一下。需要的人可以从中学习,希望你能有所收获。

Java中的HashMap是一种常见的数据结构,一般用作数据字典或Hash查找的容器。

通常,我们通过这样做来初始化和分配初始值:

HashMapString,Object map=new HashMap();map.put(‘name ‘,’ yang GB ‘);map.put(‘情人’,’ Huang q ‘);

但有时我们希望在表达式中完成初始化和初始值赋值:

HashMapString,Object map=new HashMap(){ { put(‘ name ‘,’ yang GB ‘);放(‘情人’,‘黄q’);}};

这里使用了双括号[{{{}}]进行初始化,使得代码简洁易读。第一个括号实际上定义了一个匿名内部类,第二个括号实际上是一个实例初始值设定项块,它在内部匿名类被构造时执行。这样写的好处很明显,就是一目了然。但是,这种写入可能会导致该对象的序列化失败的问题。

首先,因为这个方法是匿名内部类的声明方法,所以引用保存了外部类的引用。因此,序列化此集合时,外部类将被无意识地序列化,并且当外部类未实现序列化接口时,将报告错误。

其次,在上面的例子中,实际上声明了一个继承自HashMap的子类。但是,一些序列化方法,如通过Gson序列化到json或序列化到xml,无法序列化Hashset或HashMap的子类,从而导致序列化失败。解决方法是将其重新初始化为HashMap对象[新HashMap(map)];】,这样可以正常初始化。

此外,需要注意的是,这种使用双括号进行初始化的语法在执行效率上比普通的初始化编写略低。

最后,这种使用双括号进行初始化的语法也适用于数组列表和集合。

阅读以上内容对你有帮助吗?如果您想了解更多相关知识或阅读更多相关文章,请关注行业资讯频道,感谢您的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/138382.html

(0)

相关推荐

  • Centos6、7操作系统中怎么开启或关闭ICMP协议

    技术Centos6、7操作系统中怎么开启或关闭ICMP协议小编给大家分享一下Centos6、7操作系统中怎么开启或关闭ICMP协议,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有

    攻略 2021年11月15日
  • c++实现打印结构体所有变量

    技术c++实现打印结构体所有变量 c++实现打印结构体所有变量说明
    c++没有静态反射机制,这里采用暴力解析头文件,并生成代码的形式
    有struct定义解析结构体
    /*
    —- From XDU’s

    礼包 2021年10月19日
  • 如何在Android进行代理设置

    技术如何在Android进行代理设置这篇文章给大家介绍如何在Android进行代理设置,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android代理设置步骤:1.打开你的Android设置。2.点

    攻略 2021年11月11日
  • 鳄鱼属于哺乳动物吗,为什么说鳄是最高等的爬行动物

    技术鳄鱼属于哺乳动物吗,为什么说鳄是最高等的爬行动物提起鳄鱼,大家就会想到它是很凶猛的动物鳄鱼属于哺乳动物吗。生活在热带地区的非洲鳄,长达5米,重约1吨。它们有时会突然咬住到河边饮水的牛、羚羊、鹿,用力地把它们拖入水中,

    生活 2021年10月23日
  • 如何解决C# 7.2中的结构体性能问题

    技术如何解决C# 7.2中的结构体性能问题本篇内容介绍了“如何解决C# 7.2中的结构体性能问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔

    攻略 2021年11月26日
  • 垂耳兔为什么不吉利,养垂耳兔要注意什么问题

    技术垂耳兔为什么不吉利,养垂耳兔要注意什么问题我养的就是垂耳兔,说要注意什么的,我其实还真没特别注意,我养了两年,到现在一点儿病没有生过,平时都吃兔粮,但是兔粮营养成分不太跟的上,建议不要单一的吃兔粮,所以我后面加了各种

    生活 2021年10月22日