微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在迭代过程中更改HashMap密钥

如何解决在迭代过程中更改HashMap密钥

您应该将信息保留在其他集合中,以便在迭代后对其进行修改。您只能iterator.remove()在迭代器期间使用删除条目。HashMap合同禁止在迭代过程中对其进行更改。

解决方法

是否可以在迭代过程中更改同一HashMap实例的键?因为地图条目集没有方法entry.setKey()。现在我能想到的是创建另一个HashMap …

MultipartParsingResult parsingResult = parseRequest(request);

Map<String,String[]> mpParams = parsingResult.getMultipartParameters();
Map<String,String[]> mpParams2 = new HashMap<String,String[]>();

Iterator<Entry<String,String[]>> it = mpParams.entrySet().iterator();

while (it.hasNext()) {
    Entry<String,String[]> entry = it.next();
    String name = entry.getKey();

    if (name.startsWith(portletNamespace)) {
        mpParams2.put(name.substring(portletNamespace.length(),name.length()),entry.getValue());
    }
    else {
        mpParams2.put(name,entry.getValue());
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。