>Java >java지도 시간 >Java SE 1.4.2 이후 Java의 `Arrays.asList()` 메서드가 어떻게 변경되었으며 어떻게 해결할 수 있습니까?

Java SE 1.4.2 이후 Java의 `Arrays.asList()` 메서드가 어떻게 변경되었으며 어떻게 해결할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-12 18:39:11488검색

How Has Java's `Arrays.asList()` Method Changed Since Java SE 1.4.2, and How Can I Work Around It?

Java에서 배열을 목록으로 변환: 1.4.2 이후 변경 사항 확인

Java에서 배열을 목록으로 변환하는 동안 다음과 같은 문제가 발생할 수 있습니다. Java SE 1.4.2에서 8로의 Arrays.asList() 메서드 변경으로 인한 예기치 않은 동작. 이 문서 이러한 변경 사항을 자세히 살펴보고 버전 전반에 걸쳐 일관된 목록 변환을 보장하는 솔루션을 제공합니다.

1.4.2 이전 동작: 배열을 목록으로 변환

Java SE 1.4 이전 .2에서 Arrays.asList() 메서드는 배열을 변경 가능한 목록으로 편리하게 변환했습니다. 예를 들어, 다음 코드 조각은 요소 1, 2, 3을 포함하는 목록을 생성합니다.

int[] numbers = new int[] { 1, 2, 3 };
List<Integer> list = Arrays.asList(numbers);

1.4.2 이후 동작: 목록에 래핑된 배열

Java SE 1.5.0부터 Arrays.asList()의 동작이 크게 변경되었습니다. 배열을 요소 목록으로 변환하는 대신 이제 단일 요소인 원래 배열을 포함하는 수정 불가능한 래퍼 목록을 반환합니다. 이 동작은 잠재적으로 예측할 수 없는 결과를 초래할 수 있는 목록 수정을 방지하기 위해 도입되었습니다.

그 결과 이전 코드 조각은 이제 다르게 동작하여 '숫자' 배열이 포함된 목록을 반환합니다.

int[] numbers = new int[] { 1, 2, 3 };
List<int[]> list = Arrays.asList(numbers); // Note: <> should be omitted

해결 방법: 배열을 기본 목록으로 변환 래퍼

배열의 개별 요소를 포함하는 변경 가능한 목록을 얻으려면 배열을 해당 기본 래퍼 클래스 목록으로 변환할 수 있습니다. 예를 들어 정수 개체 목록을 만들려면 다음 코드를 사용합니다.

Integer[] numbers = new Integer[] { 1, 2, 3 };
List<Integer> list = Arrays.asList(numbers);

이 방법을 사용하면 결과 목록에 배열 자체가 아닌 기본 값이 포함됩니다.

위 내용은 Java SE 1.4.2 이후 Java의 `Arrays.asList()` 메서드가 어떻게 변경되었으며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.