具有索引和 java 中的两个值的数据结构

Data structure with index and two values in java

我有一些数据想要整理,但我发现键值数据结构不符合我的要求。

我有一些这样的数据:

1    |  new CustomObject[] {...}
1    |  etc...
5    |  
8    |  
19   |  

目前,我将第一列放入键中,将第二列放入值中。

我遇到的问题是,当我将新值放入键值数据结构时,有时来自一个键的值会被覆盖,因为有多个值具有相同的键。

理想情况下,我正在寻找的数据结构应该具有 keyAt(int index).

等方法

有谁知道什么样的数据结构可以满足我的要求?

由于我正在为 Android 开发,所以我已经查看了 Android 的数据结构的文档,例如 SparseArray<E> and ArrayMap<K, V>,但是它们都是键值结构,这意味着输入新值时我的密钥将被覆盖。

  • 据我了解,您真正想要的是像 每个索引有两个值的有序数组。你可以做什么 根据我的理解,有两个平行的 ArrayLists 其中一个是 'key' 列表,另一个保存与 键。你只需要确保当你向其中添加一些东西时, 你也更新另一个。您可以做的另一件事是创建一个 class 其中 class 的每个实例都包含 'key' 及其 值。

    • 这些方法的问题是你不会保留能力 按键拉,而是你必须按索引拉,然后检查 键和值。
  • 另一种选择是 HashMap<Key, List<value>>,这样每个键都有一个与之关联的值列表。

    • 这种方法的问题在于,您要么必须检查键是否存在,然后在添加新元素时追加到现有列表。
class Key {
  public int hashCode() {
  /*terurn something*/
 }
}

Map<Key,ArrayList<V>>

这方面有什么地方不符合您的要求?

的帮助下,我能够为我的特定用例找到解决方案。

因为我使用的是 Android,所以我使用了 Pair<F, S> class(也可以通过 v4 支持库获得)和 List<E> 来帮助我实现我的目标通缉

我用过:

List<Pair<Integer, CustomObject>>