2016-12-22 4 views
-3

Если я хочу проверить, что значение, присутствующее в первой позиции индекса в TreeMap, равно xyz, тогда выполните xyz . Если значение, присутствующее в первой позиции индекса, равно abc, тогда выполните abc. Как я смогу это написать? Потому что я хочу получить доступ к упорядоченным индексам в TreeMap. Я хочу получить отсортированные ключи TreeMap по порядку. Помощь требуетсяTreeMap Sorted Positions Access

+3

Я не "получить его." Если сопоставление карты уже было, то что мешает вам просто проверять первую запись с помощью 'firstEntry()'? –

+0

У меня есть всего 8 ключей и значений в treemap, и я хочу получить доступ к каждой клавише (упорядоченной в порядке возрастания) по одному. Не только первая и последняя запись сэр. Есть ли способ? @TimBiegeleisen – Ammarah

+0

* «после сортировки в TreeMap» * Что вы подразумеваете под «после сортировки»? «TreeMap» не может быть unsorted, поэтому нет такой вещи, как * before * sort, и, следовательно, нет такой вещи, как * после * сортировки. – Andreas

ответ

1
//this code iterates through all the keys in sorted order 
treeMap.keySet().forEach(key -> { 
    //use key to do whatever you need 
}); 

Редактировать

//this code iterates through all entries (from first, second, third, ... to last) 
tree.entrySet().forEach(entry -> { 
    key = entry.getKey(); 
    value = entry.getValue(); 
    //use key and value to do whatever you need 
}); 

Edit2

//this codes finds the first key whose value equals the desired value 
Object key = tree.entrySet().stream() 
          .filter(e -> e.getValue().equals(desiredValue)) 
          .map(Entry::getKey) 
          .findFirst() 
          .get(); 
+0

Сэр, есть ли способ, как функция firstEntry(), специально получить доступ к первому ключевому значению в TreeMap? Я хочу получить доступ к каждой записи таким образом. – Ammarah

+0

@Ammarah См. Мое редактирование. – Spotted

+0

На первой итерации, если значение ключа == желаемое значение. Как я напишу этого сэра? – Ammarah

1

Самый быстрый и самый уродливый хак может быть просто

List<KeyType> keyList = new ArrayList<>(myTreeMap.keySet()); 
KeyType nthKey = keyList.get(nthIndex); 

, но я бы спросить себя, почему я использую в первую очередь с TreeMap, когда я хочу посмотреть записи по индексу? Было бы более эффективным использовать List и позвонить по телефону sort?

+0

Если я использую список и сортирую, то как мне это сделать сэром? – Ammarah