SeouliteLab

[Java/자바] 배열에서 요소 제거하기 본문

프로그래밍

[Java/자바] 배열에서 요소 제거하기

Seoulite Lab 2024. 3. 8. 09:01

예제 1: ArrayList를 사용하여 특정 인덱스의 요소 제거

// 배열 선언
String[] array = {"apple", "banana", "orange", "grape", "melon"};
// ArrayList로 배열 복사
List<String> list = new ArrayList<>(Arrays.asList(array));
// 특정 인덱스의 요소 제거
int indexToRemove = 2;
list.remove(indexToRemove);
// 결과 출력
System.out.println("요소 제거 후 배열: " + list);

ArrayList를 사용하여 특정 인덱스의 요소를 제거할 수 있습니다. 해당 인덱스의 요소가 삭제된 후 ArrayList를 다시 배열로 변환하면 요소가 제거된 배열을 얻을 수 있습니다.

예제 2: 배열 요소를 한 칸씩 앞으로 당기기

// 배열 선언
String[] array = {"apple", "banana", "orange", "grape", "melon"};
// 특정 인덱스의 요소 제거
int indexToRemove = 2;
for (int i = indexToRemove; i < array.length - 1; i++) {
    array[i] = array[i + 1];
}
// 마지막 요소 제거
array = Arrays.copyOf(array, array.length - 1);
// 결과 출력
System.out.println("요소 제거 후 배열: " + Arrays.toString(array));

특정 인덱스의 요소를 제거하기 위해 배열 요소를 한 칸씩 앞으로 당겨야 합니다. 그 후에는 마지막 요소를 삭제해야 합니다. 이 방법은 특정 인덱스를 기준으로 배열을 조정하므로 성능이 떨어질 수 있습니다.

예제 3: System.arraycopy() 메서드 사용

// 배열 선언
String[] array = {"apple", "banana", "orange", "grape", "melon"};
// 특정 인덱스의 요소 제거
int indexToRemove = 2;
int numToCopy = array.length - indexToRemove - 1;
System.arraycopy(array, indexToRemove + 1, array, indexToRemove, numToCopy);
array[array.length - 1] = null;
// 결과 출력
System.out.println("요소 제거 후 배열: " + Arrays.toString(array));

System.arraycopy() 메서드를 사용하여 특정 인덱스 이후의 요소를 한 칸씩 앞으로 당길 수 있습니다. 이 방법은 성능이 우수하며, 배열을 직접 조작하기 때문에 추가 메모리가 필요하지 않습니다.