HashMap优雅的初始化方式以及引申

Posted 小杜比亚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HashMap优雅的初始化方式以及引申相关的知识,希望对你有一定的参考价值。

小记

  相信很多人和笔者一样,经常会做一些数组的初始化工作,也肯定会经常用到集合类。假如我现在要初始化一个String类型的数组,可以很方便的使用如下代码:

  String [] strs = {"Tom","Jack"};

  但是我相信很多人在初始化HashMap的时候是使用如下的方式:

  Map<String, Object> map = new HashMap<String, Object>();
  map.put("name", "June");  
  map.put("age", 12);

  上面这段代码个人觉得略显啰嗦,其实还有另外一种优雅的初始化方式:

  Map<String, Object> map = new HashMap<String, Object>() {
      {
          put("name", "June");  
          put("age", 12);  
      }
  };

  这边有必要说清楚两个大括号表示的是啥意思,是一种什么语法呢?其实,外层的一组“{}”表示的是一个匿名类,内层的一对“{}”表示的是实例初始化块,然后这边还有一点需要明白,实例初始化块的代码在编译器编译过后,是放在类的构造函数里面的,并且是在原构造函数代码的前面

以上是关于HashMap优雅的初始化方式以及引申的主要内容,如果未能解决你的问题,请参考以下文章

优雅代码05-从hashMap源码介绍位运算符

hashmap冲突的解决方法以及原理分析:

Python之如何优雅的重试

HashMap原理:哈希函数的设计

更简洁优雅的 VARIANT 类型使用方式

大厂面试必问!HashMap 怎样解决hash冲突?