如何设置Hashmap等于其原始值?

问题描述 投票:0回答:1

我有一个

HashMap<Character, Integer>
可以计算字符串中字母的频率,称为
freq
。例如,如果单词是 PUPPY,则映射包含值
{P=3, U=1, Y=1}

我正在用它来玩类似单词的游戏。当为提交的猜测的字母分配黄色和绿色时,我会从字母的频率中减去,这样分配的颜色就不会比字母多。

因此,如果目标单词是 PUPPY 并且用户猜测 PRUNE,那么第一次猜测时颜色效果很好,但地图值会变成

{P=2, U=0, Y=1}
。我需要频率返回到原始值。

我尝试创建第二个相同类型的哈希图并将

revert
(我的第二个哈希图)设置为
freq
,然后在函数执行后将
freq
设置为
revert
,但它保留了更改后的值。

java hashmap
1个回答
0
投票

复制一份,根据需要修改然后丢弃:

Map<Character, Integer> originalFreq = ...;
while (<making guesses>) {
    Map<Character, Integer> guessFreq = new HashMap<>(originalFreq); // make fresh copy
    // modify guessFreq as you like - it will be discarded next loop iteration
}
© www.soinside.com 2019 - 2024. All rights reserved.