当前位置: 首页 > 知识库问答 >
问题:

如何使用列表作为值迭代LinkedHashMap

卢勇
2023-03-14

我有以下LinkedHashMap声明。

LinkedHashMap<String, ArrayList<String>> test1

我的观点是我如何迭代这个哈希图。我想在下面执行此操作,对于每个键获取相应的数组列表,并根据该键逐个打印数组列表的值。

我试过了,但只得到返回字符串,

String key = iterator.next().toString();  
ArrayList<String> value = (ArrayList<String> )test1.get(key)

共有3个答案

张翰音
2023-03-14

在Java8:

Map<String, List<String>> test1 = new LinkedHashMap<String, List<String>>();
test1.forEach((key,value) -> {
    System.out.println(key + " -> " + value);
});
司空炯
2023-03-14

我假设你的 get 语句中有一个拼写错误,它应该是 test1.get(key)。如果是这样,我不确定为什么它没有返回 ArrayList,除非您首先没有在映射中输入正确的类型。

这应该可行:

// populate the map
Map<String, List<String>> test1 = new LinkedHashMap<String, List<String>>();
test1.put("key1", new ArrayList<String>());
test1.put("key2", new ArrayList<String>());

// loop over the set using an entry set
for( Map.Entry<String,List<String>> entry : test1.entrySet()){
  String key = entry.getKey();
  List<String>value = entry.getValue();
  // ...
}

或者您可以使用

// second alternative - loop over the keys and get the value per key
for( String key : test1.keySet() ){
  List<String>value = test1.get(key);
  // ...
}

在声明 vars(以及在通用参数中)时,应使用接口名称,除非您有使用实现进行定义的非常具体的原因。

刘瀚
2023-03-14
for (Map.Entry<String, ArrayList<String>> entry : test1.entrySet()) {
    String key = entry.getKey();
    ArrayList<String> value = entry.getValue();
    // now work with key and value...
}

顺便说一句,实际上应该将变量声明为接口类型,例如Map

 类似资料:
  • 使用JSF 2.0,我需要显示一个表,其中每一行都包含一个打开弹出窗口的链接。我有两种型号:

  • 问题内容: 我正在使用以下ajax函数: 我在警告框中得到正确的结果。现在,我想在struts迭代器中使用此ajax返回的列表,如下所示: 但是屏幕上没有任何显示。谁能告诉我该怎么做? 问题答案: @AndreaLigios请解释第二种结果类型,即JSP代码段。我不知道如何使用JSP代码段作为ajax响应。 Main.jsp(完整) Struts.xml(相关) AjaxAction(相关) Sn

  • 问题内容: 我有以下LinkedHashMap声明。 我的观点是如何遍历此哈希图。我要执行以下操作,对于每个键,获取对应的arraylist并针对该键逐一打印arraylist的值。 我试过,但 得到 只返回字符串, 问题答案: 顺便说一句,您应该真正将变量声明为接口类型,例如。

  • 我正在尝试使用列表迭代器来遍历一个链表,并根据存储在那里的整数值对下一个节点进行一些操作/检查,但我的代码中出现了一些错误。我想我不明白iterator.next()正在返回什么(一些E对象,但我不知道如何从它中访问我想要的值)编辑器希望我做一些如下所述的转换。它摆脱了错误,但我不知道这是否是处理问题的安全方法,或者它是否具有我正在寻找的行为。请解释为什么我会得到错误,以及是否有一个好的方法来处理

  • 我正在寻找帮助,我正在尝试迭代具有订单()的产品,该产品还包含

  • 我对RxJava/RxAndroid还不熟悉,但我一直坚持使用我的用例。 我尝试迭代一个