2015-07-09 4 views
-3

Можно ли получить следующее (следующее, как в следующем ключевом значении, которое было вставлено) значение ключа LinkedHashMap?
E.g. текущее значение ключа - 2, а следующее значение ключа - 4. Я хочу использовать значение следующего ключа без установки моего итератора (или вообще) одного индекса дальше. Очевидно, что использование одного итератора, похоже, не выполняет эту работу. Другая идея заключалась бы в том, чтобы передать набор, возвращенный myHashMap.keySet(), в какой-то другой класс реализации, но я не уверен, можно ли получить следующий элемент.Итерирование по набору ключей LinkedHashMap

Любые идеи?

+0

Видя, как я использую LinkedHashMap я бы определил следующий в качестве следующего ключа. – optional

+0

Да, очевидно. – optional

+0

Публичный API не предлагает способ сделать это в O (1). «Итератор» из «keySet» - ваш лучший выбор, но вам нужно пройти его до вашего ключа, а затем получить «следующий», если он есть. –

ответ

0

Предположим, что существует LinkedHashMap<K,V> linkHashMap, теперь задайте собственный метод getNextKey, который принимает индекс параметра и возвращает значение следующего индекса, если оно действительное.

Фрагмент кода (не рабочий код) -

public K getNextKey(int index){ 
    // put check if index is valid 
    K[] keyArray = linkedHasMap.keySet.toArray(new K[linkedHasMap.size()]); 
    return K[index+1]; 
} 
Смежные вопросы