想优雅得初始化一个 Map<String,Map<String,String>> 怎么写
时间: 2023-05-26 17:02:06 浏览: 72
可以使用双括号初始化来实现优雅的初始化一个 Map<String,Map<String,String>>,如下所示:
```java
Map<String, Map<String, String>> map = new HashMap<String, Map<String, String>>() {{
put("key1", new HashMap<String, String>() {{
put("subKey1", "value1");
put("subKey2", "value2");
}});
put("key2", new HashMap<String, String>() {{
put("subKey3", "value3");
put("subKey4", "value4");
}});
}};
```
这种方式是通过继承匿名内部类的方式实现的,可以简单方便地初始化一个复杂的数据结构。但是需要注意的是,使用该方式初始化 Map 需要创建多个匿名内部类,会生成额外的类文件,可能会影响程序启动速度。
相关问题
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对象时需要使用双括号语法来避免编译器的警告。
List<Map<String,String>>怎么初始化
List<Map<String,String>>是一个列表,其中每个元素都是一个Map,Map中包含String类型的key和value。要初始化一个List<Map<String,String>>对象,可以使用如下代码:
```
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
```
这里使用了ArrayList作为List的实现类。如果需要添加元素,可以使用add方法:
```
Map<String,String> map = new HashMap<String,String>();
map.put("key1", "value1");
map.put("key2", "value2");
list.add(map);
```
这里创建了一个Map对象,并添加了两个键值对,然后将这个Map对象添加到了List中。如果需要添加更多的元素,可以重复以上步骤。