gpt4 book ai didi

java - 如何从 HashMap 类型的 Hashmap 中删除重复项?

转载 作者:行者123 更新时间:2023-11-29 06:30:44 33 4
gpt4 key购买 nike

我有 <String, Object> 类型的 haspmap .此 HashMap 包含重复项。我正在尝试使用以下方法删除重复项。但它显示错误。请在下面找到代码和错误。

这是包含数据的原始 HashMap 。

Map<String , Object> map = new HashMap<String , Object>();

我正在尝试将值添加到集合中。

Set<String> valueSet = new HashSet<String>(map.values());

map.values()它显示一个错误,说无法解析构造函数 hashset(java.util.collection)

在此之后,我添加了以下代码以消除重复项。

Iterator<String> it = valueSet.iterator();

Map<Integer , String> uniqueMap = new HashMap<Integer , String>();

while(it.hasNext()){
String value = it.next();

for(Entry<Integer , String> e : map.entrySet()){
if(value.equals(e.getValue()) && !uniqueMap.containsValue(value)){
uniqueMap.put(e.getKey(), value);
}
}
}

但由于错误,我无法继续进行。你能帮我解决我做错的地方吗?谢谢。

最佳答案

这个:

Map<String , Object> map = new HashMap<String , Object>();
Set<String> valueSet = new HashSet<String>(map.values());

不起作用,因为 map.values()返回 Collection<Object>该集合的类型为 String .

试试这个:

Map<String , Object> map = new HashMap<String , Object>();
Set<Object> valueSet = new HashSet<Object>(map.values());

或者:

Map<String , String> map = new HashMap<String , String>();
Set<String> valueSet = new HashSet<String>(map.values());

@coders 回应你的评论,如果你有一个 map 列表并且你想创建一组这个 map 的唯一值,你可以这样做:

ArrayList<HashMap<String, Object>> mDataList = new ArrayList<HashMap<String, Object>>();
Set<Object> valueSet = new HashSet<Object>();
for(HashMap<String, Object> map : mDataList){
valuesSet.addAll(map.values());
}

关于java - 如何从 HashMap<String, Object> 类型的 Hashmap 中删除重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34780984/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com