![](/img/trans.png)
[英]How to remove the dulpicates from ArrayList<HashMap<String,Object>> in java?
[英]How to remove duplicates from Hashmap of type HashMap<String, Object>?
我有<String, Object>
类型的haspmap。 该哈希图包含重复项。 我正在尝试使用以下方法删除重复项。 但是它显示了一个错误。 请找到以下代码和错误。
这是包含数据的原始哈希图。
Map<String , Object> map = new HashMap<String , Object>();
我正在尝试将值添加到集合中。
Set<String> valueSet = new HashSet<String>(map.values());
在map.values()
它显示一个错误,指出无法解析构造函数哈希集(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针对您的评论,如果您有一个地图列表,并且想要创建一组该地图的唯一值,则可以执行以下操作:
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());
}
Hasmap无法存储重复的键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.