如何在java中为映射赋值
我从我的应用程序中获取requestParameters映射,并将其分配给具有一些更改值的不同map
。基本上我得到的输出是
email=a@a.com login projectname=abc
我想分配
email=a@a.com request=login projectname=abc
所以我做了这个
tempKey=new String[requestParameters.size()];
tempValue=new String[requestParameters.size()];
requestParams=new HashMap();
while(iterator.hasNext())
{
Map.Entry me=(Map.Entry)iterator.next();
String[] arr=(String[])me.getValue();
if(me.getKey().toString().equalsIgnoreCase("login"))
{
tempKey[i]="request";
tempValue[i]=me.getKey().toString();
}
else
{
tempValue[i]=arr[0];
tempKey[i]=me.getKey().toString();
}
requestParams.put(tempKey[i], tempValue[i]);
log.info(tempKey[i]+"="+tempValue[i]);
i++;
}
我试图像这样打印来自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
(修改的映射)赋值,上面的代码有什么错误
# 1 楼答案
我会复制现有地图并更改不同的值:
# 2 楼答案
请求参数映射通常是不可修改的映射。。因此,对make所做的任何更改都不会被保存。您需要创建另一个地图,并将所有可以更改的条目放入地图中