使用另一个数组检查值数组

时间:2011-03-25 05:33:58

标签: java arrays

我有两个数组说原始[]和输入[]。 在第一个数组中,我有3个值

1 
2 
3

并在第二个数组中给出2个值

2 
3

我想检查第一个数组中是否存在这两个值 我怎么能这样做?

6 个答案:

答案 0 :(得分:7)

Integer original[] = {1,2,3};
Integer input[] = {2,3};

if (Arrays.asList(original).containsAll(Arrays.asList(input)))
{
    System.out.println("Yup, they're in there!");
}

请注意,这不适用于基本(int)数组;你必须在Integer个对象中加入它们。如果你的数组是String[],你就是金色的。

答案 1 :(得分:1)

  

我想检查这两个值是否正确   存在于第一个阵列中怎么可能   我这样做?

迭代你的第二个数组,并根据第一个数组检查它。

答案 2 :(得分:1)

如果对较大的数组进行排序,请查看http://download.oracle.com/javase/1.4.2/docs/api/java/util/Arrays.html

中的binarySearch方法

遍历第二个数组并搜索数组中的每个数组。

答案 3 :(得分:1)

如果您对查询感兴趣“我的数组中包含的值X是什么?”,那么您可能需要考虑切换数据结构。数组很适合按顺序存储元素的有限列表,数组元素的主要属性是它们的位置。如果你想存储元素以便你可以轻松检查给定元素是否存在,我强烈建议切换到将元素存储在Set中,因为这个界面更自然地支持这个想法。此外,HashSetTreeSet都可以比数组上的标准搜索更快地执行查询查询。

那就是说,如果你必须坚持阵列,那么这里的任何其他答案应该是完全没问题的。我建议你重新评估一下你是否应该首先使用数组。

答案 4 :(得分:0)

取第一个数组,通过从第二个数组中获取一个元素,将搜索逻辑应用到它上面并重复此操作,直到最后一个元素没有完成。您将从此链接获得如何在阵列中进行搜索的帮助。 http://www.roseindia.net/java/beginners/OccurancesInArray.shtml

答案 5 :(得分:0)

for(int i=0;i<=orignal.length;i++) {
 if(orignal[0]==input[i] | orignal[0]==input[++i]) {
    System.out.println("Yup, they're in there!");
 }
}

这肯定有用。