Как дать статическое значение HashMap? - PullRequest
2 голосов
/ 21 ноября 2011

У меня есть HashMap как:

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

У меня есть значение как:

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

Как я могу статически назначить эти значения при определении хэш-карты?

Ответы [ 3 ]

8 голосов
/ 21 ноября 2011

Вы можете заполнить его в статическом блоке:

static {
   map.put("January", Arrays.asList(new Media("Sunday"), new Media("Monday")));
}

(Вы должны предпочесть интерфейс конкретным классам. Определите свой тип как Map<String, List<Media>>)

4 голосов
/ 21 ноября 2011

Использовать статический блок:

static {
  mediaListWithCategory.put(youKey, yourValue);
}
1 голос
/ 21 ноября 2011

Вариант этого может быть более кратким:

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");
      }});
}};

См. Инициализация двойной скобки для обсуждения.

...