检查ArrayList中的Array元素是否包含特定值

时间:2012-04-22 19:53:41

标签: java arrays search arraylist

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

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

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

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

然后我想制作所有比赛的数组/列表。例如,一个数组,其中包含与move[0] move[1]值匹配的所有3值。所以我将留下一个包含所需移动的2D阵列数组/列表。

谢谢, 马特

2 个答案:

答案 0 :(得分:1)

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

中完成

答案 1 :(得分:1)

在我看来,您需要的是key-value数据结构,并且您选择了一种奇怪的方式来实现它。
如果您不能使用泛型(由于某种原因您使用旧的jdk)或使用HashTable使用类型来强制类型安全,则应使用HashMap