ArrayList 란 무엇입니까?
컴퓨터 프로그래밍의 ArrayList는 컴퓨터 배열처럼 동작하지만 필요에 따라 배열의 크기를 동적으로 늘릴 수있는 데이터 구조입니다. 프로그램 실행 중에 크기를 조정할 수없는 내장 배열 데이터 형식과 달리 ArrayList 구조는 요소 추가 또는 삭제에 따라 배열의 크기를 늘리거나 줄일 수 있습니다. 성능 프로파일이 매우 뛰어나므로 데이터 수집에 대한 임의의 빠른 액세스가 가능합니다. 그러나 다른 데이터 구조보다 느린 두 가지 인스턴스가 있습니다. 즉, 배열 중간에서 요소를 추가 및 제거합니다. 대부분의 객체 지향 프로그래밍 언어는 때로는 동적 배열이라고도하지만 이러한 목록의 구현 유형이 있습니다.
ArrayList를 사용하면 링크 된 목록에 필요한 주소를 찾기 위해 전체 데이터 시퀀스를 걸을 필요없이 인덱스 번호로 데이터 개체에 즉시 액세스 할 수있는 기능을 프로그램에 제공합니다. 필요에 따라 어레이의 크기를 늘릴 수 있으므로 유연성과 속도를 모두 고려한 균형 잡힌 접근 방식입니다. 또한 이러한 목록에서 요소를 제거하면 배열 크기가 줄어들어 메모리 공간이 확보됩니다.
다른 데이터 구조에 비해 ArrayList를 사용하면 얻을 수있는 이점 중 하나는 래퍼 오브젝트가 저장중인 데이터를 포함 할 필요가 없다는 것입니다. 연결된 목록 또는 해시 테이블의 경우 일반적으로 컬렉션을 유지하고 조작하는 데 사용되는 기술을 유지하려면 별도의 개체가 필요합니다. ArrayList를 사용하면 데이터 객체에 필요한 유일한 정보는 메모리의 객체 주소입니다. 즉,이 유형의 목록으로 작업 할 때 오버 헤드 메모리 사용량이 줄어 듭니다.
ArrayList를 사용할 때 발생할 수있는 문제는 구현 및 메모리 관리 시스템에서 발생할 수 있습니다. 대부분의 어레이는 연속 메모리 위치로 할당됩니다. 따라서 특정 크기의 ArrayList를 사용하려면 최소한 연속 된 블록 순서로 사용 가능한 메모리가 있어야합니다. 동적 배열은 여러 번 자체 크기를 조정할 수 있으므로 메모리 조각화가 발생하여 메모리 할당 오류가 발생하여 프로그램 실행이 중지 될 수 있습니다.
ArrayList의 성능은 표준 배열을 사용하는 것과 비슷하지만 배열이 객체에 캡슐화되어 있기 때문에 액세스 시간이 약간 느려집니다. 구현에 따라 동적 배열이 크게 느려지는 경우는 배열의 크기를 변경해야하는 경우입니다. 여기에는 현재 배열을 원하는 새 크기로 할당 된 새 배열로 복사하여 성능이 일시적으로 저하 될 수 있습니다. 목록 중간에서 요소를 추가하거나 제거 할 때 동일한 문제가 발생하여 다음 요소를 모두 새 위치로 이동해야합니다.