1. 개요

이 빠른 사용방법(예제)에서는 Apache Commons Lang 라이브러리를 사용하여 Java의 배열에서 요소를 제거 할 수있는 다양한 방법에 대해 알아 봅니다 .

2. 메이븐

의 추가하자 공유지 - lang3의 의존성을 우리의 프로젝트에 의 pom.xml 파일 :

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.11</version>
</dependency>

3. 요소 제거

시작하기 전에 Apache Commons Lang 라이브러리에서 ArrayUtils 클래스를 사용하지 않고 배열에서 요소를 제거하면 어떤 일이 발생하는지 살펴 보겠습니다 .

아래 배열이 주어지면 인덱스 2 의 요소를 제거해 보겠습니다 .

이를 수행하는 간단한 방법은 배열 끝에 도달 할 때까지 인덱스 2 에 저장된 값을 인덱스 3에 저장된 값으로 바꾸는 것입니다 .

위의 방법으로 요소를 제거하면 배열의 크기는 동일하게 유지 되고 마지막 인덱스에 저장된 값은 비어있게됩니다. 배열에는 초기화 중에 할당 된 고정 메모리 크기 가 있으므로 요소를 제거해도 배열 크기가 조정되지 않습니다.

이제 Apache Commons Lang의 ArrayUtils 클래스에서 remove 메서드를 사용하여 요소를 제거 할 때 배열 표현을 살펴 보겠습니다 .

보시다시피, 여기서 배열 크기는 요소가 제거 된 후 5로 조정됩니다. 제거 방법은 새로운 배열을 생성 복사 모든 값 이외의 값은 제거된다.

ArrayUtils의 클래스는 배열로부터 요소를 제거하는 두 가지 방법을 제공한다. 다음에 이것들을 보자.

4. 색인을 입력으로 사용

요소를 제거 할 수있는 첫 번째 방법은 ArrayUtils # remove를 사용 하여 인덱스를 사용 하는 것입니다 .

public int[] removeAnElementWithAGivenIndex(int[] array, int index) {
      return ArrayUtils.remove(array, index);
}

또 다른 변형은 removeAll 메서드로, 인덱스가 주어지면 배열에서 여러 요소를 제거하는 데 사용할 수 있습니다.

public int[] removeAllElementsWithGivenIndices(int[] array, int... indices) {
    return ArrayUtils.removeAll(array, indices);
}

5. 요소를 입력으로 사용

또는 제거하려는 항목의 색인을 모른다고 가정 해 보겠습니다. 이 경우 ArrayUtils # removeElement를 사용하여 제거 할 요소를 제공 할 수 있습니다  .

public int[] removeFirstOccurrenceOfGivenElement(int[] array, int element) {
    return ArrayUtils.removeElement(array, element);
}

이 메서드의 또 다른 유용한 변형은 ArrayUtils # removeElements입니다 . 제거하려는 요소가 두 개 이상인 경우 :

public int[] removeAllGivenElements(int[] array, int... elements) {
    return ArrayUtils.removeElements(array, elements);
}

때때로 우리는 주어진 요소의 모든 발생을 제거하고 싶을 것입니다. ArrayUtils # removeAllOccurences 를 사용하면됩니다 .

public int[] removeAllOccurrencesOfAGivenElement(int[] array, int element) {
    return ArrayUtils.removeAllOccurences(array, element);
}

6. 결론

이 기사에서는 Apache Commons Lang 라이브러리를 사용하여 배열에서 요소 / 요소를 제거하는 다양한 방법을 살펴 보았습니다 .

엣지 케이스에 대해 자세히 알아 보려면이 사용방법(예제)의 소스 코드와 GitHub에서 사용할 수 있는 관련 단위 테스트를 확인하세요 .