【发布时间】:2014-03-28 18:58:50
【问题描述】:
所以,问题是我有以下对象Map<String, List<String>>
一些函数在这个结构中返回了信息,所以输出,当我执行这个 sn-p
for (Map.Entry<String, List<String>> entry : map.entrySet())
{
System.out.println("Key : " + entry.getKey() + " ,Value : " + entry.getValue());
}
对应的输出看起来像
Key: Somekey1
Value: Somevalue1
Key: Somekey2
Vaue: Somevalue2, Somevalue3
Key: foobar
Value: foo, foo1, ..., foon
因此,如您所见,没有办法绕过所有需要的元素,因为我只需要将带有 foobar 键的每个值都表示为 String[]。
最终的事情是,根据javadoc,如果需要foobar键的值,最后我会得到foon。
String fookey = conn.getHeaderField("foobar");
if (fookey == null) {
System.out.println("Key 'foobar' is not found!");
} else {
System.out.println("foobar: " + fooval);
}
我输出中的这段代码有foo1
有人可以提出代码的工作 sn-p,或者如何解决这个问题的想法吗?
更新。
现在找到了解决方案。如果您知道如何改进,请随时改进。 试图为其他人维护代码可复制粘贴。
StringBuilder sb = new StringBuilder();
String strArray = {""};
for(Map.Entry<String, List<String>> entry: map.entrySet()){
if(map.containsKey("foobar")){
List list = entry.getValue();
strArray = (String[])list.toArray(new String[list.size()]);
}
}
for(String str : strArray){sb.append(str + newline);}
String fooarr = sb.toString();
【问题讨论】: