2014-10-05 1 views
2

지정된 요소가없는 배열을 복사하려고합니다. , 1,2,3,4,5 { "이 이 포함됩니다지정된 요소가없는 복사 배열 java

내가 원하는 것은 INT를 포함하는 요소없이 배열 2에 배열을 복사하는 것입니다
int[] array = {1,2,3,4,5,6,7,8,9}; 
int[] array2 = new int[array.length-1]; 

"6 "그래서 :의 나는 다음과 같은 배열을 가정 해 봅시다 7, 8, 9} "

난 단지 루프에 사용할 이것은 내가 지금까지 무엇을 가지고 있지만 그것이 작동 나던

int[] array= { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 
    int[] array2= new int[array.length - 1]; 
    int remove = 6; 
    for (int i = 0; i < array2.length; i++) { 
     if (array[i] != remove) { 
      array2[i] = array[i]; 
     } else { 
      array2[i] = array[i + 1]; 
      i++; 
     } 
    } 
    for (int i = 0; i < array2.length; i++) { 
     System.out.println(array2[i]); 
    } 

감사

+0

'tab'와'tab2'은 무엇입니까? 그리고 "하지만 작동하지 않습니다"오류 메시지를 대체하지 않습니다. – Tom

+0

내 나쁜, 탭 배열 및 tab2 array2 –

+0

정확히 작동하지 않습니다? 오류가 발생합니까? 또 다른 결과? 그냥 아무것도 없어? –

답변

4
int j = 0; 
int count = 0; //Set this variable to the number of times the 'remove' item appears in the list 
int[] array2 = new int[array.length - count]; 
int remove = 6; 
for(int i=0; i < array.length; i++) 
{ 
    if(array[i] != remove) 
     array2[j++] = array[i]; 
} 
+0

감사하지만 array2의 마지막 요소는 복사되지 않습니다. 대신에 9가 0이됩니다. –

+0

@BobJ'int count = 0;'을'int count = 1;'으로 변경하는 것을 잊었을 것 같습니까? – Tom

+0

array.length 대신 array.length2를 넣지 마십시오. 고마워요 –

1

당신은 또한 그것을 할 자바 (8)의 스트림과 람다 표현식을 사용하여 :

int[] array= { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 
int[] array2 = Arrays.stream(array).filter(value -> value != 6).toArray(); 
System.out.println(Arrays.toString(array2)); 
// Outputs: [1, 2, 3, 4, 5, 7, 8, 9]