如何在java中为映射赋值
我从我的应用程序中获取requestParameters映射,并将其分配给具有一些更改值的不同的如何在java中为映射赋值,java,Java,我从我的应用程序中获取requestParameters映射,并将其分配给具有一些更改值的不同的映射。基本上我得到的输出是 email=a@a.com login projectname=abc 我试图像这样打印requestParams中的值,但什么也没有得到 iterator=requestParams.entrySet().iterator(); while(iterator.hasNext()) { Map.Entry me=(Map.Entry)ite
映射。基本上我得到的输出是
email=a@a.com
login
projectname=abc
我试图像这样打印requestParams
中的值,但什么也没有得到
iterator=requestParams.entrySet().iterator();
while(iterator.hasNext())
{
Map.Entry me=(Map.Entry)iterator.next();
String[] arr=(String[])me.getValue();
log.info(me.getKey().toString()+"="+arr[0]);
}
它使用tempKey[i]+“=”+tempValue[i]
正确打印log
,但它没有将值分配给requestParams
(修改的映射),上面的代码有什么错?我会复制现有映射并更改不同的值:
Map<String, String> newMap = new HashMap<String, String>(requestParameters);
newMap.put("request", "login");
newMap.remove("login");
Map newMap=newhashmap(requestParameters);
newMap.put(“请求”、“登录”);
删除(“登录”);
请求参数映射通常是不可修改的映射。。因此,对make所做的任何更改都不会保存。您需要创建另一个映射,并将所有可以更改的条目放在映射中。为什么要使用这些tempValue
和tempKey
数组?忽略这一点,我正在用它做一些其他事情,测试目的,而不是告诉我们忽略某些事情,为什么不修复示例?这里有太多我们没有看到的东西-请将问题改为显示一个简短但完整的示例,说明您正在看到的内容和您希望看到的内容。
iterator=requestParams.entrySet().iterator();
while(iterator.hasNext())
{
Map.Entry me=(Map.Entry)iterator.next();
String[] arr=(String[])me.getValue();
log.info(me.getKey().toString()+"="+arr[0]);
}
Map<String, String> newMap = new HashMap<String, String>(requestParameters);
newMap.put("request", "login");
newMap.remove("login");