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 () 방법은 삭제할 원소를 제외한 다른 원소를 새 그룹에 복사한 다음 이 새 그룹으로 되돌려줍니다.다음은 여러분께 가져온 자바에서 수조의 지정된 요소를 삭제하는 방법의 모든 내용입니다. 많은 응원 부탁드립니다~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【AWS】 S3 Glacier 아카이브 삭제에서 볼트 삭제 (Win)부정적인 유산을 정리하기 위해 어쩔 수 없이 AWS를 명령행에서 조작한 기록입니다. 설치 프로그램을 다운로드하고 설치하기만 하면 됩니다. 내 경우에는 이미 여러 사용자가 있었으므로 전체 액세스 권한이 부여 된 사용자...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.