【问题标题】:Add HashMap values in HashMap inside ArrayList without duplicate in Android在 ArrayList 内的 HashMap 中添加 HashMap 值而不在 Android 中重复
【发布时间】:2017-01-16 11:59:23
【问题描述】:

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

【问题讨论】:

  • 请贴一些代码,问题很糟糕
  • 提供示例或代码
  • 看看答案是否足以解决您的问题

标签: java android arraylist hashmap duplicates


【解决方案1】:

您的意思是添加从 HashMapArrayList 的唯一值吗?

如果是,您可以将 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());
}

【讨论】:

    【解决方案2】:

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

    先声明如下,可以灵活地将值直接添加为aArrayList
    ArrayList&lt;HashMap&lt;key,value&gt;&gt;&gt; myArrayHash = new ArrayList&lt;HashMap&lt;key,value&gt;&gt;

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

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

    由于您尚未发布任何代码,因此您需要适当地替换变量值。这是一个很好的例子,可以让你为将来的任何此类问题提供一个通用示例。

    【讨论】:

    • 在 myArrayHash 添加 hashset 时显示错误(ArrayList> 类型中的方法 add(HashMap) 不适用于参数(Set>>)).
    猜你喜欢
    • 1970-01-01
    • 2013-03-22
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    相关资源
    最近更新 更多