0

我有这个 ArrayList - ArrayList<Object[]> tree...

我也有这个数组 - Object[] move...它的大小为 2。

在我的程序中,一个唯一的二维数组被添加move[0]move[1]. 然后将该数组添加到 ArrayList 中,然后重复该过程,因此我有一个“移动”列表。

我的问题是我不确定如何在 ArrayList('tree')中找到仅在元素中包含某个值的数组('moves')——move[1]因为该元素每次都是唯一的。move[0]

然后我想制作一个所有匹配项的数组/列表。例如,包含与 的move[0]值匹配的所有move[1]值的数组3。所以我会留下一个包含所需移动的二维数组的数组/列表。

谢谢,马特

4

2 回答 2

1

最简单的方法是遍历您的tree对象并使用找到的匹配项构建一个新对象ArrayList,但这将花费与 that 的大小成线性关系的时间tree。如果您正在寻找速度,那么您可以维护 a HashMap<Integer, ArrayList<Object[]>>,其中键是您存储的整数move[1],值是具有该键的所有移动的列表,因此检索该列表可以在 O(1 )

于 2012-04-22T20:06:17.287 回答
1

在我看来,您需要的是一个key-value数据结构,而您选择了一种相当奇怪的方式来实现它。如果你不能使用泛型(由于某种原因你在旧的 jdk 中),
你应该使用 a或者使用using 类型来强制类型安全。 HashTableHashMap

于 2012-04-22T20:31:31.730 回答