映射中的Ljava.lang.String
我很困惑 我有一个方法,它可以从视图中的URL获取参数:映射中的Ljava.lang.String,java,arrays,map,Java,Arrays,Map,我很困惑 我有一个方法,它可以从视图中的URL获取参数: public static Map<String, String[]> getParameters() { final Set<Map.Entry<String,String[]>> entries = request().queryString().entrySet(); Map <String, String[]> parameters = new HashMap
public static Map<String, String[]> getParameters() {
final Set<Map.Entry<String,String[]>> entries = request().queryString().entrySet();
Map <String, String[]> parameters = new HashMap <String, String[]>();
for (Map.Entry<String,String[]> entry : entries) {
final String key = entry.getKey();
String[] value = entry.getValue();
parameters.put(key, value);
}
System.out.println(parameters);
return parameters;
}
然后显示fine:{yAxis=[Choose,Choose]
但是我不能遍历这些值,因为它们都是字符串而不是列表。
我希望将值与键链接在字符串[]中,这样我就可以通过它进行迭代。当它只是一个字符串时,我无法进行迭代。我确信这是一个简单的问题,但我似乎无法解决它
请帮帮我…不幸的是,所有数组的toString()都默认为Object提供的方法,即打印类的内部描述和“identity”哈希代码
如果您的目录结构中有
String[]
,您必须自己执行toString,默认情况下不会执行您想要/期望的操作。解决此问题的一种方法是使用列表,例如ArrayList
,它将按您的期望打印。如果您想更改toString()
要反映自己的字符串表示实现,您必须编写自己的包含数据的对象,并重写toString()
问题来自字符串数组上toString方法的默认实现。这就是[Ljav.lang.string;@44df465的来源
创建您自己的类以保存值,并实现toString方法以您想要的方式输出值。它是一个字符串数组,而不仅仅是一个字符串。您可以遍历该数组并获取映射到键的(多个)字符串值
如评论中所述
for (String value: entry.getValue())
{
System.out.println(value);
}
嗯,这有多复杂?for(Map.Entry:Map.entrySet()){for(String s:Entry.getValue(){doSomething();}}
不要费心用注释来澄清你的问题。编辑你的问题,让它清楚。
for (String value: entry.getValue())
{
System.out.println(value);
}