如何检查其他数组中是否已存在某个值。就像在下面的代码中我想检查结果数组的哪些值在portOut数组中。我说得对不对。使用了Array.asList(result [i])。contains(portOut [i])但是出了点问题......
int[] portOut = {4000,4001,4002,4003,4004,4005,4006,4007,4008,4009};
int[] result = {4001, 4005, 4003, 0, 0, 0, 0, 0, 0, 0};
for (int i=0; i< portOut.length; i++){
if(Arrays.asList(result).contains(portOut[i])){
System.out.println("out put goes to " + portOut[i] );
}
else{
System.out.println("output of " + portOut[i]+ " will be zero");
}
}
答案 0 :(得分:6)
Arrays.asList
是一个通用函数,其参数为T... array
,如果int[]
唯一适用的类型为int[]
,即您的列表只包含一个元素,如果整数是数组。要修复它,请使用盒装基元类型:
Integer[] portOut = {4000,4001,4002,4003,4004,4005,4006,4007,4008,4009};
Integer[] result = {4001, 4005, 4003, 0, 0, 0, 0, 0, 0, 0};
答案 1 :(得分:1)
只需编写两个for循环,并检查一个数组中的任何给定元素是否在另一个数组中。所以只是:
for (int i=0; i< portOut.length; i++){
for(int j=0;j<result.length;j++) {
//rest of code
}
}
答案 2 :(得分:1)
for (int i=0; i< portOut.length; i++)
{
for(int j=0;j<result.length;j++)
{
if(portOut[i]==result[j])
{
//result[j] is the required value you want. You can put this into other array.
}
}
}
答案 3 :(得分:1)
创建一个返回布尔值的函数。
for(int i = 0; i < portOut.length; i++)
for(int j = 0; j < result.length; j++)
if(portOut[i] == result[j])
return true;
return false;