我有以下LinkedHashMap声明。
LinkedHashMap<String, ArrayList<String>> test1
我的观点是我如何迭代这个哈希图。我想在下面执行此操作,对于每个键获取相应的数组列表,并根据该键逐个打印数组列表的值。
我试过了,但只得到返回字符串,
String key = iterator.next().toString();
ArrayList<String> value = (ArrayList<String> )test1.get(key)
在Java8:
Map<String, List<String>> test1 = new LinkedHashMap<String, List<String>>();
test1.forEach((key,value) -> {
System.out.println(key + " -> " + value);
});
我假设你的 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(以及在通用参数中)时,应使用接口名称,除非您有使用实现进行定义的非常具体的原因。
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还不熟悉,但我一直坚持使用我的用例。 我尝试迭代一个