我有两个数组说原始[]和输入[]。 在第一个数组中,我有3个值
1
2
3
并在第二个数组中给出2个值
2
3
我想检查第一个数组中是否存在这两个值 我怎么能这样做?
答案 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
中,因为这个界面更自然地支持这个想法。此外,HashSet
和TreeSet
都可以比数组上的标准搜索更快地执行查询查询。
那就是说,如果你必须坚持阵列,那么这里的任何其他答案应该是完全没问题的。我建议你重新评估一下你是否应该首先使用数组。
答案 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!");
}
}
这肯定有用。