我有一些我想要组织的数据,但我发现键值数据结构不符合我的要求。
我有一些这样的数据:
1 | new CustomObject[] {...}
1 | etc...
5 |
8 |
19 |
目前,我将第一列放入键中,将第二列放入值中。
我遇到的问题是,当我将新值放入键值数据结构时,有时一个键的值会被覆盖,因为有多个值具有相同的键。
理想情况下,我要查找的数据结构将包含keyAt(int index)
。
有谁知道哪种数据结构符合我的要求?
由于我正在为Android开发,我已经查看了Android的数据结构文档,如SparseArray<E>
和ArrayMap<K, V>
,但它们都是键值结构,这意味着我的密钥将被覆盖提出新的价值观。
答案 0 :(得分:1)
根据我的理解,你真正想要的是一个像
每个索引有两个值的有序数组。你可以做什么
根据我的理解,有两个平行ArrayList
s,其中一个
&#39;关键&#39; list和另一个包含与之关联的值
键。你必须确保当你添加东西时,
你也更新了另一个。你可以做的另一件事是创造一个
class的每个实例同时包含&#39;键&#39;和它的
值。
另一种选择是拥有HashMap<Key, List<value>>
,以便每个键都有一个与之关联的值列表。
答案 1 :(得分:1)
在Pedro's comment的帮助下,我能够为我的特定用例找到解决方案。
由于我使用Android,因此我使用Pair<F, S>
类(也可通过v4支持库获得)和List<E>
来帮助我实现我想要的目标。
我用过:
List<Pair<Integer, CustomObject>>
答案 2 :(得分:0)
class Key {
public int hashCode() {
/*terurn something*/
}
}
Map<Key,ArrayList<V>>
什么不符合您的要求?