Что эта запись говорит о HashMap?

Рейтинг: 2Ответов: 2Опубликовано: 17.03.2015
  1. Тут понятно, что и ключ и значение должны быть типа String, а первый и второй List о чем говорят?

    List<List<HashMap<String, String>>> routes
    
  2. Я правильно понимаю, что тут создают ArrayList data, состоящий из HeshMapов (почему пишут только "Map"?), texts.length - это задают длину HashMap?

    ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>>(
                texts.length);
    

Ответы

▲ 4Принят
List<List<HashMap<String, String>>> routes

Это список, состоящий из списков, каждый из которых состоит из HashMap<String, String>
Боюсь представить, зачем такой монстр может понадобиться...

ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>>(
                texts.length);

тут создают ArrayList, состоящий из Map, а не HashMap. Почему так? Потому, что в результате в него можно положить что угодно, наследуемое от Map. Что именно, можно посмотреть тут

▲ 3

В первом случае создают список списков, элементами которого будет хэшмап. Такой себе "двумерный список", что-то близкое к матрице.

Во втором случае map - это не хэшмап. Это интерфейс. И в левой части выражения быть ему нормально, а вот в правой... Это нужно проверить. Почитайте детальное о мапах, например, на хабре.