简体   繁体   中英

How to check if a value exists in an array in Java?

How to check if a value already exists in other array. like in the code below I wanted to check which values of result array are in the portOut array. I am not getting it right. Used Array.asList(result[i]).contains(portOut[i]) but something is wrong...

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");
      }
   }

Arrays.asList is a generic function that takes a parameter of T... array , in case of int[] the only applicable type is int[] , ie your list will contain only one element, which is the array if integers. To fix it use boxed primitive types:

Integer[] portOut = {4000,4001,4002,4003,4004,4005,4006,4007,4008,4009};
Integer[] result = {4001, 4005, 4003, 0, 0, 0, 0, 0, 0, 0};

Just write two for loops and check whether any given element in one array is in the other. So just:

for (int i=0; i< portOut.length; i++){
   for(int j=0;j<result.length;j++) {
      //rest of code
   }
}
   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.
        }
     }
   }

Make a function that returns a Boolean value.

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;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM