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

标签 java android data-structures key-value

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

我有一些这样的数据:

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/

相关文章:

区间搜索树的Javascript实现

algorithm - 嵌套哈希的正确数据结构

java - 在 HashMap 中搜索

java - 如何使用java套接字在两个服务器之间进行通信

android - Google Cloud Messaging 是否可以从 Android 通知中心删除消息?

android - Sencha 触摸 : unable to call superclass error

algorithm - 二叉树的垂直和

java - 如何使用 .properties 文件中的值在 spring bean 中初始化一个集合

java - 兔子MQ : Connection recovery mechanism

android使用异步http连接获取图像位图