Java의 동적 배열이란 무엇입니까?



Java의 동적 배열은 자동 크기 조정이 크게 개선 된 배열 유형입니다. 배열의 유일한 제한은 고정 크기라는 것입니다.

배열 Java에서 객체로 구현 된 동종 데이터 구조입니다. 배열은 특정 데이터 유형의 값을 하나 이상 저장하고이를 저장하기위한 인덱싱 된 액세스를 제공합니다. 배열의 특정 요소는 인덱스로 액세스됩니다. 이 기사에서는 다음 순서로 Java의 동적 배열에 대해 설명합니다.

자바의 동적 배열 소개

동적 배열은 자동 크기 조정이 크게 개선 된 배열 유형입니다. 배열의 유일한 제한은 고정 크기라는 것입니다. 이는 배열이 미리 보유 할 수있는 요소의 수만 지정할 수 있음을 의미합니다. 반면에 동적 배열은 실시간으로 더 많은 요소를 추가함에 따라 확장 될 수 있습니다. 따라서 코더는 배열의 크기를 미리 결정할 필요가 없습니다. 또한 몇 가지 장점이 더 있습니다.





  • 빠른 조회 . 배열과 마찬가지로 주어진 인덱스에서 요소를 검색 할 때 O (1) 시간이 걸립니다.



  • 가변 크기 . 원하는만큼의 요소를 삽입 할 수 있으며 이에 따라 동적 배열이 확장되어이를 보유합니다.

  • 캐시 친화적 . 배열과 유사하게 동적 배열은 메모리에 항목을 나란히 배치 할 수 있으므로 캐시를 효율적으로 활용할 수 있습니다.

    아나콘다에서 파이썬을 사용하는 방법



코드에서 동적 배열을 사용하면 몇 가지 단점이 있습니다. 우리는 대부분의 애플리케이션에서 무엇보다 동적 배열을 더 많이 사용하지만 한계로 인해 가장 선호되는 선택이되지 않는 경우가 있습니다.

  • 느린 최악의 경우 추가 . 일반적으로 동적 배열 끝에 새 요소를 추가하는 동안 한 인스턴스에서 O (1)를 사용합니다. 그러나 동적 배열에 새 항목에 대한 인덱스가 더 이상 없으면 확장해야하며 한 번에 O (n)을 사용합니다.

  • 비용이 많이 드는 삽입 및 삭제. 배열과 유사하게 요소는 서로 인접하여 저장됩니다. 따라서 배열의 중앙에 항목을 추가하거나 제거하는 동안 한 번에 O (n)를 사용하는 다른 요소를 푸시해야합니다.

아래 다이어그램은 배열이 실시간으로 작동하는 방식과 요소가 쌓이는 방식을 보여줍니다. 또한 배열 함수의 평균 사례와 최악의 경우 명령어가 어떻게 변경되는지 보여줍니다.

array-자바의 동적 배열-Edureka

크기 대 용량

동적 배열을 초기화 할 때 동적 배열 구현은 이해되는 고정 크기 배열을 만듭니다. 초기 크기는 구현에 해당합니다. 예를 들어, 10 개의 인덱스를 사용하도록 구현 배열을 만들어 보겠습니다. 이제 동적 배열에 4 개의 항목을 추가합니다. 이제 동적 배열의 길이는 4입니다. 그러나 기본 배열의 길이는 10입니다. 따라서 동적 배열 크기는 4이고 용량은 10이라고 말할 수 있습니다. 동적 배열은 동적 배열의 끝점과 시작점을 추적하기 위해 특정 끝 인덱스를 저장합니다. 추가 용량이 시작되는 지점.

초보자를위한 안드로이드 스튜디오 튜토리얼

배가 추가

용량이 이미 가득 찬 어레이에 항목을 추가하려고하는 경우가있을 수 있습니다. 따라서 방 동적 배열을 만들려면 새롭고 더 큰 기본 배열을 자동으로 만듭니다. 일반적으로 이전에는 예상하지 못했던 새로운 추가 사항을 처리하는 데 두 배가됩니다. 따라서 각 항목을 복사하는 데 시간이 걸리지 않습니다. 항목을 동적 배열에 추가 할 때마다 자동으로 새로운 두 배 크기의 기본 배열이 만들어지며 추가에는 시간이 걸리지 않습니다.

요소 삭제

배열에서 요소를 삭제하는 동안 기본 'remove ()'메서드는 끝에서 요소를 제거하고 마지막 인덱스에 자동으로 0을 저장합니다. 또한“I”가 인덱스 인 removeAt (i) 메서드를 호출하여 특정 인덱스의 요소를 삭제합니다. removeAt (i) 메서드는 주어진 인덱스에서 왼쪽에있는 모든 오른쪽 요소를 이동합니다.

배열 크기 조정

배열의 오른쪽에 불필요한 메모리를 차지하는 데이터가없는 경우 srinkSize () 메서드는 추가 메모리를 해제합니다. 모든 슬롯이 소비되고 추가 요소가 추가되면 기본 고정 크기 배열의 크기를 늘려야합니다. 실제 크기 조정은 더 큰 배열을 할당하고 마지막으로 새 항목을 추가하기 전에 자란 배열의 모든 요소를 ​​복사해야하므로 비용이 많이 듭니다.

다음은 배열 크기가 가득 차고 새 요소가 새로운 이중 크기 배열로 복사되는 프로그램의 예입니다. 'Mahavir'라는 문자열 요소 인 요소는 이미 크기 3의 전체 배열에 추가됩니다.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner public class addingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println ( ' 배열의 크기 입력 :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println ('Enter elements of the array (Strings) :: ') for (int i = 0 i

산출:

이것으로 우리는 Java 기사에서 Dynamic Array의 끝까지 왔습니다. 동적 배열로 작업하는 방법에 대한 아이디어를 얻었기를 바랍니다.

날짜 문자열을 날짜로 변환

확인 전 세계에 걸쳐 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 작성했습니다. Edureka의 Java J2EE 및 SOA 교육 및 인증 과정은 Java 개발자가 되고자하는 학생과 전문가를 위해 설계되었습니다. 이 과정은 Java 프로그래밍을 시작하고 Hibernate & Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.

질문이 있으십니까? 이 'Java의 동적 배열'블로그의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 연락 드리겠습니다.