Страницы

Поиск по вопросам

понедельник, 24 февраля 2020 г.

Чтение из TreeMap по порядковому номеру?

#java #коллекции


Приветствую, коллеги! 

Есть готовый и отсортированный как надо TreeMap.

Как получить из него пары ключ-значение на основании порядкового номера i? По типу:  

for (i = 0; i < map.size(); i++)

    


Ответы

Ответ 1



Получить определенную пару по индексу index можно, например, так: TreeMap foo = new TreeMap(); Object key = foo.keySet().toArray(new Object[foo.size()])[index]; Object value = foo.get(key);

Ответ 2



public static Map.Entry getEntryByIndex(Map map, int index) { if (index < 0 || map.size() <= index) { throw new IndexOutOfBoundsException("индекс выходит за границы"); } Map.Entry e = null; Iterator> it = map.entrySet().iterator(); while (0 <= index--) { e = it.next(); } return e; } Применение Map m = new TreeMap() {{ put("1", "1"); put("2", "2"); }}; Map.Entry e = getEntryByIndex(m, 1); А если нужно просто в цикле получить все entry вместе с порядковым номером, то это совсем элементарно int i = 0; for (Map.Entry e : m.entrySet()) { System.out.println("Порядковый номер: " + i); System.out.println("Ключ: " + e.getKey()); System.out.println("Значение: " + e.getValue()); i++; }

Комментариев нет:

Отправить комментарий