我有一些数据想要整理,但我发现键值数据结构不符合我的要求。
我有一些这样的数据:
1 | new CustomObject[] {...}
1 | etc...
5 |
8 |
19 |
目前,我将第一列放入键中,将第二列放入值中。
我遇到的问题是,当我将新值放入键值数据结构时,有时一个键的值会被覆盖,因为有多个值具有相同的键。
理想情况下,我正在寻找的数据结构将具有诸如 keyAt(int index)
之类的方法。 .
有谁知道哪种数据结构可以满足我的要求?
由于我正在为 Android 开发,所以我已经查看了 Android 数据结构的文档,例如 SparseArray<E>
和 ArrayMap<K, V>
,但是它们都是键值结构,这意味着在放入新值时我的键将被覆盖。
最佳答案
根据我的理解,你真正想要的是类似 每个索引有两个值的有序数组。基于你可以做什么 根据我的理解,有两个并行
ArrayList
s 在哪里 'key' 列表,另一个保存与 键。你只需要确保当你向其中添加一些东西时, 你也更新另一个。您可以做的另一件事是创建一个 类,其中该类的每个实例都保存“ key ”及其 值。- 这些方法的问题是您无法保留这种能力 按键拉取,但您必须按索引拉取,然后检查 键和值。
另一个选择是
HashMap<Key, List<value>>
,以便每个键都有一个与其关联的值的列表。- 这种方法的问题在于,您必须检查某个键是否存在,然后在添加新元素时将其附加到现有列表。
关于java - java中带有索引和两个值的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38621713/