Итерация массивов по HashMap - PullRequest
0 голосов
/ 26 декабря 2011

Есть ли простой способ для итерации всех массивов, которые находятся в одной Hashmap?

Например:

 HashMap<String, ArrayList<String>>

Я ищу элемент из массива, который находится в одном из HashValue.

Ответы [ 2 ]

3 голосов
/ 26 декабря 2011
Map<String, List<String>> map = new HashMap<String, List<String>>();

for (List<String> values : map.values()) {
    for (String value : values) {
        // do what you want with the value here.
    }
}

Чтобы сделать этот цикл короче, взгляните на LambdaJ.Джакартские коллекции также имеют много классов, которые могут упростить этот код.Например, класс, который оборачивает несколько коллекций и предоставляет API одной коллекции.Что-то вроде CollectionsCollection.Но, к сожалению, эта библиотека еще не поддерживает дженерики.

1 голос
/ 26 декабря 2011

Вы должны использовать итератор для запуска хеш-карт.

Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
    // code goes here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...