Java 애플리케이션에서는 배열을 연산하고 변환해야 하는 경우가 많습니다. Arrays 클래스는 많은 편리한 메소드를 제공하며 그 중 하나가 asList() 메소드입니다. 이 기사에서는 asList() 메소드의 의미와 사용법을 자세히 설명하고 독자가 이 메소드를 더 잘 이해할 수 있도록 몇 가지 코드 예제도 제공합니다.
asList() 메서드는 지정된 배열의 모든 요소가 포함된 List 개체를 반환하는 정적 메서드입니다. 이 메서드의 구문은 다음과 같습니다.
public static <T> List<T> asList(T... a)
이 메서드의 반환 값 유형은 List
asList() 메소드를 사용하면 배열을 리스트로 변환할 수 있습니다. Java 컬렉션 프레임워크에서 목록은 반복되는 요소를 포함할 수 있는 선형 데이터 구조입니다. 리스트는 배열과 달리 동적 확장의 특성을 가지며, 요소를 쉽게 추가하고 삭제할 수 있습니다.
다음 예에서는 먼저 일부 요소가 포함된 배열을 만든 다음 이를 List로 변환할 수 있습니다.
String[] strArray = {"Hello","Java","World"}; List<String> strList = Arrays.asList(strArray);
이 예에서는 asList() 메서드를 사용하여 String 유형의 배열을 List asList() 메소드의 매개변수는 참조 유형이어야 한다는 점에 유의하세요. 이는 기본 유형 데이터가 java.lang.Object 인터페이스를 구현하지 않아 List의 요소로 사용할 수 없기 때문입니다. 기본 유형 배열을 목록으로 변환하려면 이를 해당 래퍼 클래스에 수동으로 캡슐화해야 합니다. 다음은 int 유형 배열을 List로 변환하는 샘플 코드입니다. 이 예에서는 Arrays.stream()을 사용하여 int 유형 배열을 IntStream 스트림으로 변환한 다음 boxed()를 사용합니다. 이를 변환하는 메소드를 사용하여 Unbox를 풀고 Integer 유형으로 변환하고 toArray()를 Integer 유형의 배열로 변환합니다. 마지막으로 asList() 메소드를 사용하여 Integer 유형 배열을 List로 변환합니다. 기본형 배열을 해당 래퍼 클래스로 변환할 때 Java 8 이전에는 수동 구현이 필요하다는 점에 유의해야 합니다. Java 8에서는 Stream API를 사용하여 이 작업을 수행할 수 있습니다. asList() 메소드를 사용할 때 List 객체의 몇 가지 특성에 주의해야 합니다. 변환된 List 객체는 본질적으로 단지 래핑 프로세스이므로 add() 및 제거()와 같은 작업을 수행할 수 없습니다. 변환된 List 개체에 대해 이러한 작업을 수행하려고 하면 UnsupportedOperationException이 발생합니다. 또한 List와 Array는 참조형이기 때문에 List를 연산할 때 원본 배열이 영향을 받을 수 있습니다. 사용 예는 다음과 같습니다. 이 예에서는 먼저 Integer 유형의 배열을 List 이 글을 읽으면 Arrays 클래스의 asList() 메서드의 사용법과 제한 사항을 이해할 수 있습니다. asList() 메소드는 배열과 목록 간 변환을 위한 편리한 도구이지만 List 객체는 요소 추가 및 제거를 지원하지 않는다는 점에 유의해야 합니다. 기본 유형 배열을 목록으로 변환할 때 이를 해당 래퍼 클래스에 수동으로 캡슐화해야 한다는 점은 언급할 가치가 있습니다. 실제 사용에서는 특정 필요에 따라 목록과 배열 중 하나를 선택해야 합니다. 위 내용은 Java 문서 해석: Arrays 클래스의 asList() 메소드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!int[] intArray = {1, 2, 3};
List<Integer> intList = Arrays.asList(Arrays.stream(intArray).boxed().toArray(Integer[]::new));
Integer[] intArray = {1, 2, 3};
List<Integer> intList = Arrays.asList(intArray);
intList.set(0, 10);