static final Map 初始化
时间: 2023-07-30 20:10:57 浏览: 52
static final Map 的初始化可以有多种方式,以下是其中的几种:
1. 使用静态代码块进行初始化
```
static final Map<String, Integer> map;
static {
map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
}
```
2. 使用双括号初始化
```
static final Map<String, Integer> map = new HashMap<String, Integer>() {{
put("A", 1);
put("B", 2);
put("C", 3);
}};
```
3. 使用 Collections.unmodifiableMap() 方法进行初始化
```
static final Map<String, Integer> map = Collections.unmodifiableMap(new HashMap<String, Integer>() {{
put("A", 1);
put("B", 2);
put("C", 3);
}});
```
无论使用哪种方式进行初始化,都需要注意确保 Map 是不可变的,以保证线程安全性。
相关问题
public static final Map<String, String> bathScheme = new HashMap<>(); 初始化写法
初始化写法有很多种,以下是几种常见的方法:
1. 使用静态代码块进行初始化:
```
public static final Map<String, String> bathScheme;
static {
bathScheme = new HashMap<>();
bathScheme.put("key1", "value1");
bathScheme.put("key2", "value2");
// 以此类推
}
```
2. 使用Collections.unmodifiableMap()方法进行初始化:
```
public static final Map<String, String> bathScheme = Collections.unmodifiableMap(new HashMap<String, String>() {{
put("key1", "value1");
put("key2", "value2");
// 以此类推
}});
```
3. 使用Map.of()方法进行初始化(需要Java 9及以上版本):
```
public static final Map<String, String> bathScheme = Map.of("key1", "value1", "key2", "value2");
```
java初始化一个常量List<Map<String,String>>
可以使用Java中的Arrays.asList()方法来初始化一个常量List<Map<String,String>>,具体实现如下所示:
```java
import java.util.*;
public class Main {
public static final List<Map<String, String>> CONSTANT_LIST = Arrays.asList(
new HashMap<String, String>() {{
put("key1", "value1");
put("key2", "value2"); }},
new HashMap<String, String>() {{
put("key3", "value3");
put("key4", "value4");
}}
);
public static void main(String[] args) {
System.out.println(CONSTANT_LIST);
}
}
```
在上述代码中,我们使用了Arrays.asList()方法来初始化一个常量List<Map<String,String>>,并且使用了匿名内部类来初始化Map对象。需要注意的是,由于我们使用了泛型,因此在初始化Map对象时需要使用双括号语法来避免编译器的警告。