【发布时间】:2021-11-02 10:01:55
【问题描述】:
我正在尝试使用哈希映射来检测给定列表中的任何重复项,如果有,我想在该字符串中添加“1”以指示其重复项。如果它出现 3 次,第三次将在该字符串后添加“3”。
我似乎无法弄清楚,跟踪重复的数量。它只会将 1 添加到重复项中,无论是第 2 次、第 3 次还是第 4 次,..etc 重复。
这就是我所拥有的:
public static List<String> duplicates(List<String> given) {
List<String> result = new ArrayList<String>();
HashMap<String, Integer> hashmap = new HashMap<String, Integer>();
for (int i=0; i<given.size(); i++) {
String current = given.get(i);
if (hashmap.containsKey(current)) {
result.add(current+"1");
} else {
hashmap.put(current,i);
result.add(current);
}
}
return result;
}
我也想包含只出现一次的值,原样(无串联)。
示例输入:["mixer", "toaster", "mixer", "mixer", "bowl"]
示例输出:["mixer", "toaster", "mixer1", "mixer2", "bowl"]
【问题讨论】:
-
你能分享一个示例输入和你想要得到的结果吗?
-
我已编辑我的帖子以包含该内容
-
final 变量不应该这样使用。将arraylist重命名为其他名称
标签: java hashmap duplicates