2015-11-27 3 views
0

Я хав структуры Карты:Как удобно получить первый элемент или последний элемент из LinkedHashMap?

Map<String, Double> map = new LinkedHashMap<>(); 

Я не знаю, ключа, но я хочу, чтобы забрать первый элемент и последний элемент, как можно достичь удобно.

+1

Вы имеете в виду ключ или значение? –

+2

http://stackoverflow.com/questions/1936462/java-linkedhashmap-get-first-or-last-entry – Matthias

+1

взгляните на него. http://stackoverflow.com/questions/1936462/java-linkedhashmap-get-first-or-last-entry –

ответ

0

один из способов сделать это:

Map<String, Double> map = new LinkedHashMap<>(); 
    map.put("one", 2.0); 
    map.put("two", 12.0); 
    map.put("three", 44.0); 
    String lKeyFirst = null; 
    String lKeyLast = null; 
    if (!map.isEmpty()){ 
     lKeyFirst = map.keySet().iterator().next(); 
     for(String key : map.keySet()){ 
     lKeyLast = key; 
     } 
     System.out.println("First key: " +lKeyFirst); 
     System.out.println("Last key: " +lKeyLast); 
    } 

Выход:

Первый ключ: один

Последний ключ: три

конечно isEmpty никогда ложно Это дело.

EDIT:

@Test 
public void testMapOneValue() { 
Map<String, Double> map = new LinkedHashMap<>(); 
map.put("one", 2.0); 
String lKeyFirst = null; 
String lKeyLast = null; 
if (!map.isEmpty()){ 
    lKeyFirst = map.keySet().iterator().next(); 
    for(String key : map.keySet()){ 
    lKeyLast = key; 
    } 
    System.out.println("First key: " +lKeyFirst); 
    System.out.println("Last key: " +lKeyLast); 
} 
} 

Выход:

Первый ключ: один

Последний ключ: один

1

Получение первого легко - запросить iterator и принять это next.

// Needs null checks etc. 
String first = map.keySet().iterator().next(); 

Получение последнего покрыто Java get last element of a collection.

+1

или [использовать отражение] (http://stackoverflow.com/a/33960155/829571) :-) – assylias

+0

thx, это полезно –

Смежные вопросы