Java中Map集合初始化并赋值的几种方式:文章来源地址https://www.toymoban.com/news/detail-514947.html
package com.itstone.mok.hutool;
import com.google.common.collect.ImmutableMap;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.HashMap;
import java.util.Map;
@SpringBootTest
public class InitializeMapCollTest {
private static final Map<String, String> map1 = new HashMap<>();
static {
map1.put("张三", "18");
map1.put("李四", "13");
}
/**
* 方式一: static块
*/
@Test
public void test01() {
// {李四=13, 张三=18}
System.out.println(map1);
}
Map<String, String> map2 = new HashMap<String, String>() {{
put("张三", "20");
put("李四", "22");
}};
/**
* 方式二: java8新特性, 双括号初始化;
* PS: 这种使用双括号进行初始化的语法在执行效率上要比普通的初始化写法要稍低。
* 第一层括弧实际是定义了一个匿名内部类 ,第二层括弧实际上是一个实例初始化块,这个块在内部匿名类构造时被执行;
*/
@Test
public void test02() {
// {李四=22, 张三=20}
System.out.println(map2);
}
/**
* 方式三: Guava(要提前引入Guava依赖)
* <dependency>
* <groupId>com.google.guava</groupId>
* <artifactId>guava</artifactId>
* <version>28.1-jre</version>
* </dependency>
* <p>
* PS: ImmutableMap是不可变 Map, 初始化之后不能再调用put方法, 否则报java.lang.UnsupportedOperationException异常;
* 在实际开发中, 我们用到 ImmutableMap 的场景都是定义系统所需的一些常量。
*/
@Test
public void test03() {
Map<String, String> map3 = ImmutableMap.of("张三", "34", "李四", "24");
// 或者
Map<String, String> map4 = ImmutableMap.<String, String>builder()
.put("张三", "34")
.put("李四", "24")
.build();
// {张三=34, 李四=24}
System.out.println(map3);
// {张三=34, 李四=24}
System.out.println(map4);
}
/**
* 方式四: 对于Java 9或更高版本:
* Map.of() 和 Map.ofEntries()静态工厂方法提供了一种创建不可变映射的便捷方法。
*/
@Test
public void test04() {
// 1. 最多存储10个元素
Map<String, String> map5 = Map.of("张三", "21", "李四", "26");
// {张三=21, 李四=26}
System.out.println(map5);
// 2. 没有限制
Map<String, String> map6 = Map.ofEntries(
entry("张三", "21"),
entry("李四", "26")
);
// {张三=21, 李四=26}
System.out.println(map6);
}
}
文章来源:https://www.toymoban.com/news/detail-514947.html
到了这里,关于Java中Map集合初始化并赋值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!