java에서 그룹에 지정된 요소를 삭제하는 방법

자바에서 수조의 지정 요소를 삭제하는 것은 어떻게 이루어져야 합니까? 만약에 여러분이 이 알고리즘에 대해 잘 모르신다면 자바에서 수조의 지정 요소를 삭제하는 예시를 함께 보실 수 있습니다.
java의api에서는 그룹의 요소를 삭제하는 방법을 제공하지 않습니다.비록 수조는 대상이지만,add (),remove () 또는 요소를 찾을 수 있는 방법을 제공하지 않습니다.이것이 바로 Array List와 HashSet이 인기 있는 이유다.
단, 이 라이브러리의 Array Utils 클래스를 사용하여 수조의 요소를 쉽게 삭제할 수 있는 Apache Commons Utils에 감사를 드립니다.그러나 주의해야 할 것은 수조는 크기가 고정되어 있다는 것이다. 이것은 우리가 원소를 삭제한 후에 수조의 크기를 줄이지 않는다는 것을 의미한다.
그래서 우리는 새로운 그룹을 만들고 시스템을 사용할 수밖에 없다.arrayCopy () 메서드는 나머지 요소를 새 그룹으로 복사합니다.대상의 수조에 대해, 우리는 수조를 List로 전환한 다음, List가 제공하는 방법을 사용하여 대상을 삭제한 다음, List를 수조로 전환할 수 있다.
번거로움을 피하기 위해 우리는 두 번째 방법을 사용한다.
Apache commons 라이브러리의 Array Utils 클래스를 사용하여 색인에 따라 지정한 요소를 삭제합니다.
Apache commons lang3 다운로드 주소:
http://commons.apache.org/proper/commons-lang/download_lang.cgi
다운로드를 한 후jar를 가져옵니다.

import java.util.Arrays;
import org.apache.commons.lang3.ArrayUtils;
/**
 *
 * Java program to show how to remove element from Array in Java
 * This program shows How to use Apache Commons ArrayUtils to delete
 * elements from primitive array.
 *
 */
public class RemoveObjectFromArray{
  public static void main(String args[]) {
         
    //let's create an array for demonstration purpose
    int[] test = new int[] { 101, 102, 103, 104, 105};
   
    System.out.println("Original Array : size : " test.length );
    System.out.println("Contents : " Arrays.toString(test));
   
    //let's remove or delete an element from Array using Apache Commons ArrayUtils
    test = ArrayUtils.remove(test, 2); //removing element at index 2
   
    //Size of array must be 1 less than original array after deleting an element
    System.out.println("Size of array after removing an element : " test.length);
    System.out.println("Content of Array after removing an object : "
              Arrays.toString(test));
   
  }
 
}
Output:
Original Array : size : 5
Contents : [101, 102, 103, 104, 105]
Size of array after removing an element : 4
Content of Array after removing an object : [101, 102, 104, 105]
물론 우리는 다른 방법이 있지만, 이미 라이브러리나javaapi를 사용하여 실현하면 더욱 빠르다.
Array Utils를 살펴보겠습니다.remove(int[] array, int index)
네모난 소스 코드:

 public static int[] remove(int[] array, int index) {
    return (int[])((int[])remove((Object)array, index));
  }
remove(Object)array, index)로 이동하는 동안 소스 코드:

private static Object remove(Object array, int index) {
    int length = getLength(array);
    if(index >= 0 && index < length) {
      Object result = Array.newInstance(array.getClass().getComponentType(), length - 1);
      System.arraycopy(array, 0, result, 0, index);
      if(index < length - 1) {
        System.arraycopy(array, index 1, result, index, length - index - 1);
      }
      return result;
    } else {
      throw new IndexOutOfBoundsException("Index: " index ", Length: " length);
    }
  }
이제 Array Utils의 삭제 수조의 원소의 원리를 알겠지.사실은 두 개의 수조를 사용한 후에 시스템을 이용해야 한다.arraycopy () 방법은 삭제할 원소를 제외한 다른 원소를 새 그룹에 복사한 다음 이 새 그룹으로 되돌려줍니다.
다음은 여러분께 가져온 자바에서 수조의 지정된 요소를 삭제하는 방법의 모든 내용입니다. 많은 응원 부탁드립니다~

좋은 웹페이지 즐겨찾기