2014-06-10 2 views
3

값이 다른 배열에 이미 있는지 확인하는 방법. 아래 코드 에서처럼 결과 배열의 값이 portOut 배열에 있는지 확인하려고했습니다. 나는 그것을 올바르게하지 못하고있다. . 포함 Array.asList (결과 [I]) 중고 (portOut는 [I])하지만 뭔가 잘못입니다 ...Java에서 배열에 값이 있는지 확인하는 방법은 무엇입니까?

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

portOut [i] == result [i] – JNL

답변

6

Arrays.asList는에만 적용 유형, int[]입니다 int[]의 경우, T... array의 매개 변수를 사용하는 일반 기능 즉 목록 정수 경우 배열 하나의 요소를 포함합니다. 이 박스 기본 형식을 사용하여 해결하려면 :

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

그냥 루프를 두를 작성하고 하나 개의 배열의 특정 요소가 다른인지 여부를 확인 . 그러니 :

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