Map用法总结

444 阅读1分钟

代码结构

image.png

image.png

JAVA构造MAP并初始化MAP

第一种方法:新建Map对象、static块初始化

private static final Map<String, String> myMap = new HashMap<>();
static {
    myMap.put("key1", "value1");
    myMap.put("key2", "value2");
}

第二种 java8新特性–双括号初始化

/*慎用,  非静态内部类/ 匿名内部类包含了外围实例的引用, 如果拥有比 外部类更长的生命周期,有内存泄露隐患*/
private static final HashMap<String, String> myMap1 = new HashMap<>() {{
    put("key1", "value1");
    put("key2", "value2");
}};

第三种 java9新特性–最简便的方式

image.png

//不可变集合
private static final Map<String, String> myMap20 = Map.of(); 
private static final Map<String, String> myMap2 = Map.of("kye1", "value1", "key2", "value2"); 
private static final Map<String, String> myMap21 = Map.of("kye1", "value1", "key2", "value2","kye3", "value1","kye4", "value1","kye5", "value1","kye6", "value1","kye7", "value1","kye8", "value1","kye9", "value10","kye10", "value1");

第四种 Guava

Map<String, String> myMap3 = ImmutableMap.of("kye1", "value1", "key2", "value2");
Map<String, String> myMap4 = ImmutableMap.<String, String>builder().put("kye1", "value1").put("key2", "value2").build();

// 导入依赖
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>30.1.1-jre</version>
</dependency>

快速返回一个空Map

// Constructs an empty HashMap with the default initial capacity (16) and the default load fact
// Since:1.2
Map<String, String> myMap = new HashMap<>();
myMap.put("key1", "value1");
System.out.println(myMap);

// com.google.common.collect
// Creates a mutable, empty HashMap instance.
Map<String, String> myMap1 = Maps.newHashMap();
myMap1.put("key1", "value1");
System.out.println(myMap1);

// Returns an empty map (immutable). This map is serializable.
// Since: 1.5
Map<String, String> myMap3 = Collections.emptyMap();

// The empty map (immutable). This map is serializable.
// Since:1.3
Map myMap4 = Collections.EMPTY_MAP;

// An empty unmodifiable map.
// This was not provided in JDK1.2.
Map myMap2 = MapUtils.EMPTY_MAP;