如何方便地从LinkedHashMap获取第一个元素或最后一个元素?

时间:2015-11-27 14:32:07

标签: java linkedhashmap

我有一个结构图:

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

我不知道密钥,但我想拿起第一个元素和最后一个元素,我怎样才能方便地实现。

2 个答案:

答案 0 :(得分:2)

获得第一个很容易 - 请求iterator并将其next

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

获取最后一项内容已在Java get last element of a collection中介绍。

答案 1 :(得分: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在这种情况下绝不是假的。

编辑:

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

输出:

  

第一把钥匙:一个

     

最后一个键:一个