ArrayList는 List 인터페이스를 구현하는 Java Collection Framework의 클래스입니다. 각 요소를 순차적으로 저장하고 액세스하는 선형 구조입니다. 이는 내부적으로 요소를 저장하기 위해 동적 배열을 사용하기 때문입니다. 배열과 마찬가지로 중복 요소를 저장할 수도 있습니다. 여기서 동적 배열은 필요에 따라 늘리거나 줄일 수 있는 배열을 의미합니다. 이 기사에서는 ArrayList의 내부 작동 방식을 탐색하여 요소를 저장하고 작업 중에 크기를 조정하는 방법을 보여줍니다.
우리 대부분은 표준 배열의 길이가 고정되어 있다는 것을 알고 있습니다. 배열이 선언되고 초기화되면 배열이 커지거나 줄어들 수 없습니다. 즉, 크기를 지정한 후에는 더 많은 요소를 추가할 수 없습니다. 그러나 일부 경우에는 개발자가 런타임까지 필요한 배열 크기를 알지 못할 수도 있습니다. 이 경우 ArrayList는 요소 수를 동적으로 늘리거나 줄일 수 있는 배열보다 더 나은 대안입니다.
프로그램에서 ArrayList를 사용하려면 먼저 ArrayList 클래스의 인스턴스를 만들어야 합니다. 이를 위해 Java는 아래에 언급된 세 가지 다른 생성자를 제공합니다.
ArrayList(): 빈 ArrayList를 생성합니다.
ArrayList(intcapacityInitial): 이 생성자에서는 ArrayList가 보유할 수 있는 요소 수의 초기 용량을 전달할 수 있습니다. 요소 수가 초기 용량에 도달하면 용량이 자동으로 증가됩니다.
ArrayList(Collection collectionName): 이 생성자를 사용하여 다른 컬렉션에서 ArrayList를 만들 수도 있습니다.
내장 메소드 "add()"를 사용하여 ArrayList에 요소를 추가하면 먼저 배열에 새 요소를 저장할 공간이 충분한지 확인합니다. 존재하는 경우 새 요소를 배열의 다음 사용 가능한 인덱스에 할당합니다. 새 요소를 위한 공간이 충분하지 않으면 일반적으로 현재 용량의 1.5배인 더 큰 용량의 새 배열을 만든 다음 이전 배열의 모든 기존 요소를 새 배열로 복사하고 새 요소를 다음 배열에 할당합니다. 새로 생성된 배열에 요소의 사용 가능한 인덱스를 추가합니다.
내장 메소드 "remove()"를 사용하여 ArrayList에서 요소를 제거하면 제거된 요소 뒤의 모든 요소가 한 인덱스 왼쪽으로 이동됩니다. 단, 어레이를 즉시 축소하지는 않지만, 용량에 비해 크기가 너무 작은 경우 나중에 축소될 수 있습니다.
위에서 논의한 사항을 더 잘 이해하기 위해 몇 가지 예를 살펴보겠습니다.
다음 예제에서는 Java에서 ArrayList의 요소를 생성하고 인쇄하는 방법을 보여줍니다.
아아아아import java.util.*; public class Example1 { public static void main(String[] args) { // Creating arraylist ArrayList<Integer> araylist = new ArrayList<Integer>(); <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>// Adding elements in arraylist<span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(8); <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(5); <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(2); <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(9); <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(2); <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(4); <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(9); <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(7); <span style="font-size: 11.4844px;"> </span>System.out.println("List of elements: " + araylist); } }
다음 예에서는 초기 용량으로 ArrayList를 생성하고 지정된 용량을 초과하는 요소를 추가하여 ArrayList가 동적으로 커질 수 있음을 보여줍니다.
아아아아List of elements: [8, 5, 2, 9, 2, 4, 9, 7]
이 예에서는 HashSet에서 ArrayList를 생성하여 집합의 요소를 ArrayList에 추가할 수 있음을 보여줍니다. 내부적으로는 먼저 전달된 컬렉션의 크기를 확인한 다음 "Arrays.copyOf()" 메서드를 사용하여 지정된 ArrayList에 요소를 저장합니다.
아아아아import java.util.*; public class Example2 { public static void main(String[] args) { // Creating arraylist with initial capacity of 5 <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>ArrayList<Integer> araylist = new ArrayList<Integer>(5); <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>// Adding elements in arraylist <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(80); // 1 <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(15); // 2 <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(23); // 3 <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(9); // 4 <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(12); // 5 <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>// adding more elements <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(14); <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(91); <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>araylist.add(74); <span style="font-size: 0.875em; font-weight: var(--bs-body-font-weight);"> </span>System.out.println("List of elements: " + araylist); } }
이 기사는 ArrayList를 정의하는 것으로 시작했으며 다음 섹션에서는 내부 작동 방식에 대해 논의합니다. ArrayList는 기본 용량이 10인 크기 조정 가능한 배열이며 요소를 더 추가하면 늘릴 수 있습니다. ArrayList를 생성할 때 생성자에서 초기 용량을 지정할 수도 있습니다.
위 내용은 Java에서 ArrayList의 내부 작동 방식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!