CodeGym/Java Blog/무작위의/Java에서 배열을 ArrayList로 변환
John Squirrels
레벨 41
San Francisco

Java에서 배열을 ArrayList로 변환

무작위의 그룹에 게시되었습니다
회원
안녕! 오늘 수업에서는 Java에서 배열을 초기화하는 방법과 배열을 Arraylist로 변환하는 방법에 대해 설명합니다. 배열은 Java에서 컨테이너 클래스의 확장이며 데이터 양이 구체적으로 알려진 경우 기본 데이터 유형 세트를 임시로 보유하는 방법으로 유용할 수 있습니다. 그러나 배열은 만들 때 정적입니다. 즉, 배열을 만들 때 포함하는 항목 수를 변경할 수 없습니다. Java에서 배열을 초기화하는 방법을 기억해야 합니다. 다음과 같이 보입니다.
datatype[] isArray;
여기서 datatype은 int, float, long 또는 String과 같은 기본 데이터 유형입니다. 다음과 같이 선언 뒤에 대괄호를 배치할 수도 있습니다.
datatype isArray[];
그렇다면 요소 수가 설정된 이 정적 배열을 어떻게 가져와 ArrayList로 변환할까요? 자, 먼저 ArrayList가 무엇인지 살펴보겠습니다.

어레이리스트

ArrayList는 Array와 이름이 비슷할 수 있지만 완전히 다르게 처리됩니다. ArrayList는 Container 클래스를 확장하지 않고 List 클래스를 확장하기 때문입니다. 이는 모든 것이 다르게 처리된다는 것을 의미합니다. 우선 목록이기 때문에 다르게 조작할 수 있습니다. List의 끝에 요소를 배치하고 필요한 경우 크기를 하나씩 늘리는 add(element)를 사용하여 ArrayList의 크기를 늘리거나 줄일 수 있습니다 . 또는 trimToSize()를 사용할 수 있습니다.끝에서 빈 인덱스를 제거하고 ArrayList를 현재 크기로 자릅니다. 따라서 배열 대신 ArrayList를 사용하면 몇 가지 이점이 있음을 알 수 있습니다. 다음으로 Array에서 ArrayList로 변환하는 두 가지 방법과 필요한 경우 뒤로 이동하는 방법을 보여드리겠습니다.

Java에서 Array에서 ArrayList로, ArrayList에서 Array로 이동

따라서 고양이 나무를 수리하기 위해 회사에서 보유하고 있는 너트와 볼트의 수를 기록하는 프로그램을 작성했다고 가정해 보겠습니다. 수년 동안 30가지 유형만 필요했기 때문에 어레이를 사용하여 추적하기가 쉬웠습니다. 하지만 이제 5가지 유형을 추가로 비축해야 하는 새로운 고객이 생겼습니다. 프로그램을 변경하고 모든 데이터를 유지하면서 다른 고객을 선택할 때 다시 이 작업을 수행하지 않도록 하려면 어떻게 해야 합니까? 좋아요! ArrayList! 그렇다면 Java Array를 ArrayList로 어떻게 변환합니까? 세 가지 방법이 있습니다. .asList() 메서드 사용 Java 배열에는 .asList() 라는 API를 볼 때 볼 수 있는 훌륭한 도구가 있습니다 . 따라서 다음과 같이 작성할 수 있습니다.
boltInventory.asList(bolts);
이 방법의 문제점은 진정한 ArrayList를 생성하지 않는다는 것입니다. 그것이 하는 일은 크기가 고정되고 변경할 수 없는 목록을 만드는 것입니다. 따라서 여전히 동적 방식으로 크기를 변경할 수 없습니다. 요소를 추가하거나 제거하려고 하면 예외가 발생합니다. 따라서 이것은 용도가 있지만 진정한 전환은 아닙니다. 그러나 우리는 이것을 사용할 수 있습니다. .asList()를 인수로 사용 이것은 Java에서 배열을 목록으로 변환하는 두 번째 방법입니다. .asList() 메서드가 목록을 생성하기 때문에 이를 사용하여 실제 ArrayList에 대한 참조를 전달할 수 있습니다. 다음은 ArrayList를 초기화하는 방법입니다.
ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
그러면 10개의 빈 셀이 있는 ArrayList가 생성됩니다. 그러나 끝에 있는 ()를 사용하여 ArrayList를 채우는 인수를 전달할 수 있습니다. 따라서 .asList 메서드와 결합하면 다음과 같은 이점이 있습니다.
ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
이렇게 하면 .asList() 메서드 에 의해 생성된 목록이 ArrayList로 전달되므로 이제 필요에 따라 동적으로 조작할 수 있습니다. Collections.addAll() 메서드 사용 Java에서 Array를 ArrayList로 변환하는 또 다른 방법은 이 메서드를 사용하는 것입니다. Array의 내용을 ArrayList로 전달합니다. 이 메서드의 일반 구문은 다음과 같습니다.
Collections.addAll(c, T);
여기서 c 는 목적지이고 T 는 전달되는 것입니다. 예를 들어 구문은 다음과 같습니다.
ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
이렇게 하면 배열 볼트의 전체 내용이 새 ArrayList로 전달됩니다. ArrayList를 배열로 변환 Java에서 ArrayList를 배열로 변환해야 하는 경우가 있습니다. 그렇게 하면 ArrayList에는 .toArray(a) 메서드가 있습니다 . 여기서 a는 대상입니다. 예를 들어 구문은 다음과 같습니다.
Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
이와 같이 Java에서 목록을 배열로 변경하면 딥 카피가 생성됩니다. 즉, Array에 대한 모든 참조는 ArrayList에 대한 참조와 다릅니다. 따라서 ArrayList에 저장된 데이터를 변경하지 않고 Array의 데이터를 조작할 수 있습니다. 데이터를 테스트해야 할 때 Java 목록을 배열로 변환하는 것이 유용합니다.

결론

어레이는 더 작은 데이터 세트에 대한 빠른 액세스 및 빠른 조작에 매우 유용하지만 크기를 변경할 수 없다는 것은 장기적으로 사용하면 효율성이 빨리 떨어진다는 것을 의미합니다. ArrayList는 필요에 따라 노드를 삽입하고 제거할 수 있는 유연성과 기능을 제공합니다. Java 배열을 목록으로 변환하는 방법을 배우면 프로그램의 전반적인 효율성이 향상되고 런타임도 향상됩니다.
코멘트
  • 인기
  • 신규
  • 이전
코멘트를 남기려면 로그인 해야 합니다
이 페이지에는 아직 코멘트가 없습니다