我有HashMap,如:
static HashMap<String,ArrayList<Media>> mediaListWithCategory=new HashMap<String,ArrayList<Media>>();
我的价值如下:
January:
-Sunday
-Monday
Februsry:
-Saturday
-Sunday
-Thursday
March:
-Monday
-Tuesday
-Wednesday
如何在定义哈希映射时静态分配这些值?
答案 0 :(得分:8)
您可以在静态块中填充它:
static {
map.put("January", Arrays.asList(new Media("Sunday"), new Media("Monday")));
}
(您应该更喜欢具体类的接口。将您的类型定义为Map<String, List<Media>>
)
答案 1 :(得分:4)
使用静态块:
static {
mediaListWithCategory.put(youKey, yourValue);
}
答案 2 :(得分:1)
这种变体可能更简洁:
static HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>() {{
put("January", new ArrayList<String>() {{
add("Sunday");
add("Monday");
}});
put("Februsry" /* sic. */, new ArrayList<String>() {{
add("Saturday");
add("Sunday");
add("Thursday");
}});
put("March", new ArrayList<String>() {{
add("Monday");
add("Tuesday");
add("Wednesday");
}});
}};
请参阅Double Brace Initialisation进行讨论。