2015-11-27 1 views
0

Je Hava une structure Carte:comment obtenir facilement le premier élément ou le dernier élément de LinkedHashMap?

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

Je ne sais pas la clé, mais je veux prendre le premier élément et le dernier élément, comment puis-je obtenir commodément.

+1

vous voulez dire la clé ou la valeur? –

+2

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

+1

jetez un coup d'œil. http://stackoverflow.com/questions/1936462/java-linkedhashmap-get-first-or-last-entry –

Répondre

0

une façon de le faire:

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); 
    } 

Sortie:

Première clé: une

Dernière clé: trois

bien sûr isEmpty est jamais faux ce cas.

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); 
} 
} 

Sortie:

Première clé: une

Dernière touche: une

1

Tirer le premier est facile - demander une iterator et prendre c'est next.

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

Obtention du dernier est couvert en Java get last element of a collection.

+1

ou [utiliser la réflexion] (http://stackoverflow.com/a/33960155/829571) :-) – assylias

+0

thx, c'est utile –