具有索引和 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>
,但是它们都是键值结构,这意味着输入新值时我的密钥将被覆盖。
据我了解,您真正想要的是像
每个索引有两个值的有序数组。你可以做什么
根据我的理解,有两个平行的 ArrayList
s 其中一个是
'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>>
我有一些数据想要整理,但我发现键值数据结构不符合我的要求。
我有一些这样的数据:
1 | new CustomObject[] {...}
1 | etc...
5 |
8 |
19 |
目前,我将第一列放入键中,将第二列放入值中。
我遇到的问题是,当我将新值放入键值数据结构时,有时来自一个键的值会被覆盖,因为有多个值具有相同的键。
理想情况下,我正在寻找的数据结构应该具有 keyAt(int index)
.
有谁知道什么样的数据结构可以满足我的要求?
由于我正在为 Android 开发,所以我已经查看了 Android 的数据结构的文档,例如 SparseArray<E>
and ArrayMap<K, V>
,但是它们都是键值结构,这意味着输入新值时我的密钥将被覆盖。
据我了解,您真正想要的是像 每个索引有两个值的有序数组。你可以做什么 根据我的理解,有两个平行的
ArrayList
s 其中一个是 '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>>