有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是否在LinkedHashMap中获取上一个密钥?

我使用了LinkedHashMap lhmNotFinal,因为在映射中输入键的顺序很重要。我使用以下方法获得LinkedHashMap的值

for (String key:lhmNotFinal.keySet())
{
System.out.println(key);
}

现在我想得到我的键的前一个值,我该怎么做?先谢谢你


共 (2) 个答案

  1. # 1 楼答案

    只是为了好玩:

    //
    Map<String, String> map = new LinkedHashMap<String, String>();
    map.put( "key1", "value1" );
    map.put( "key2", "value2" );
    
    //
    final ListIterator<String> keyListIterator = new ArrayList<String>( map.keySet() ).listIterator();
    assertEquals( "key1", keyListIterator.next() );
    assertEquals( "key2", keyListIterator.next() );
    assertEquals( "key2", keyListIterator.previous() );
    assertEquals( "key1", keyListIterator.previous() );
    assertEquals( "key1", keyListIterator.next() );
    assertEquals( "key2", keyListIterator.next() );
    
  2. # 2 楼答案

    一般来说,这不是一个与LinkedHashMap相关的问题,而是一个编码问题。您可以选择以下几项:

    String tmp= null;
    
    for (String key : lhmNotFinal.keySet()) {
    
        tmp = key ;    // after the first iteration you have your last key in tmp
    }