如何检查Java中的数组中是否存在值?

时间:2014-06-10 14:28:48

标签: java arrays

如何检查其他数组中是否已存在某个值。就像在下面的代码中我想检查结果数组的哪些值在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");
      }
   }

4 个答案:

答案 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;