> Java > java지도 시간 > Java 배열에서 객체를 효율적으로 제거하려면 어떻게 해야 합니까?

Java 배열에서 객체를 효율적으로 제거하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2024-12-29 12:59:11
원래의
319명이 탐색했습니다.

How Can I Efficiently Remove Objects from a Java Array?

Java의 배열에서 객체 제거

Java에서 배열은 고정 길이의 요소 모음입니다. 배열에서 개체를 제거해야 하는 경우 이를 수행할 수 있는 간단한 기본 제공 방법이 없습니다.

문자열 배열을 고려하세요.

String[] foo = { "a", "cc", "a", "dd" };
로그인 후 복사

해결책: 배열 목록 및 뒤로

배열에서 객체를 제거하는 한 가지 접근 방식은 이를 목록으로 변환하고 목록을 수정한 다음, 그런 다음 다시 배열로 변환합니다.

List<String> list = new ArrayList<>(Arrays.asList(foo));
list.removeAll(Arrays.asList("a"));
foo = list.toArray(foo);
로그인 후 복사

이 프로세스는 원래 배열의 크기를 유지하며 마지막 남은 요소 다음의 요소는 null로 설정됩니다.

해결책: 새 배열 목록에서

필요한 크기와 정확히 일치하는 새 배열을 원한다면 다음을 수행할 수 있습니다. 다음:

foo = list.toArray(new String[list.size()]);
로그인 후 복사
로그인 후 복사

재사용 가능 항목 사용

자주 사용하는 경우 사전 정의된 빈 문자열 배열 상수 생성을 고려할 수 있습니다.

private static final String[] EMPTY_STRING_ARRAY = new String[0];
로그인 후 복사

그런 다음 제거 기능을 다시 작성할 수 있습니다. as:

List<String> list = new ArrayList<> ();
Collections.addAll(list, foo);
list.removeAll(Arrays.asList("a"));
foo = list.toArray(EMPTY_STRING_ARRAY);
로그인 후 복사

또는 cynicalman이 제안한 접근 방식을 사용할 수 있습니다:

foo = list.toArray(new String[list.size()]);
로그인 후 복사
로그인 후 복사

위 내용은 Java 배열에서 객체를 효율적으로 제거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿