如何给HashMap提供静态值?

时间:2011-11-21 12:27:56

标签: java android android-layout android-emulator android-widget

我有HashMap,如:

static HashMap<String,ArrayList<Media>> mediaListWithCategory=new HashMap<String,ArrayList<Media>>();

我的价值如下:

January:
   -Sunday
   -Monday
Februsry:
   -Saturday
   -Sunday
   -Thursday
March:
   -Monday
   -Tuesday
   -Wednesday

如何在定义哈希映射时静态分配这些值?

3 个答案:

答案 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进行讨论。