在ArrayList中的HashMap中添加HashMap值,在Android中没有重复

时间:2016-09-08 13:54:26

标签: java android arraylist hashmap duplicates

HashMap<key,value>中存在的值集。如何通过避免HashMap中的重复值,在HashMap<key,value> ArrayList内添加android值。

2 个答案:

答案 0 :(得分:1)

您的意思是将HashMap中的唯一值添加到ArrayList吗?

如果是,您可以将HashMap条目<K, V>添加到反向HashMap <V, K>,然后获取此反向映射的所有键。假设您的密钥具有类类型K,并且您的值具有类类型V

// change to private if needed
public List<V> getUniqueValues(Map<K, V> originMap) {

    Map<V, K> reverseMap = new HashMap<>();
    Set<K> keys = originMap.keySet();
    Iterator<K> iterator = keys.iterator();

    while (iterator.hasNext()) {
        K key = iterator.next();
        V val = originMap.get(key);
        reverseMap.add(val, key);
    }
    return new ArrayList<>(reverseMap.keySet());
}

答案 1 :(得分:0)

要在数组列表中添加HashMap值,请使用以下方法:

首先声明如下,将这些值直接灵活地添加为 ArrayList
ArrayList<HashMap<key,value>>> myArrayHash = new ArrayList<HashMap<key,value>>

要为其添加值:
如果您已根据问题的声音创建了HashMap: myArrayHash.add(HashMapValue);

避免重复:
您需要在java中使用Set Class,所以最终代码将如下所示:
Set<ArrayList<HashMap<key,value>>> hashset = new HashSet<>(); hashset.addAll(myArrayHash); myArrayHash.clear(); myArrayHash.addAll(hashset);

您需要适当地替换变量值,因为您没有发布任何代码。这是一个很好的例子,可以为将来任何类型的问题设置一个通用示例。