자바에서는 정렬 동일한 유형의 요소를 포함하는 가장 중요한 데이터 구조입니다. 연속적인 메모리 할당에 요소를 저장합니다. 배열에는 두 가지 유형이 있습니다. 정적 배열 그리고 동적 배열. 이 섹션에서는 다음 사항에만 중점을 둘 것입니다. Java의 정적 배열 .
정적 배열
static 키워드로 선언된 배열을 정적 배열이라고 합니다. 크기가 고정된 메모리를 컴파일 타임에 할당합니다. 정적 배열은 변경할 수 없습니다.
사용자의 입력에 따라 배열의 크기를 조정하려면 정적 배열을 사용할 수 없습니다. 이러한 경우 동적 배열을 사용하면 런타임 시 배열의 크기를 지정할 수 있습니다.
정적 배열 예
예를 들어, int arr[10]은 크기가 10인 배열을 만듭니다. 이는 10개의 요소만 삽입할 수 있음을 의미합니다. 배열의 크기는 고정되어 있으므로 11번째 요소를 추가할 수 없습니다.
int arr[] = { 1, 3, 4 }; // static integer array int* arr = new int[3]; // dynamic integer array
정적 배열의 장점
- 효율적인 실행 시간을 가지고 있습니다.
- 정적 할당의 수명은 프로그램의 전체 실행 시간입니다.
정적 배열의 단점
- 필요한 것보다 더 많은 정적 데이터 공간이 선언되면 공간이 낭비됩니다.
- 필요한 것보다 적은 정적 공간이 선언되는 경우 런타임 중에 이 고정 크기를 확장하는 것이 불가능해집니다.
정적 배열 선언
정적 배열을 선언하는 구문은 다음과 같습니다.
[]={,,.....};
예를 들어:
cpld 대 fpga
String[] suit = new String[] { 'Japan', 'India', 'Austria', 'Dubai' };
다음과 같이 정적 배열을 선언하고 초기화할 수도 있습니다.
String[] suit = { 'Japan', 'India', 'Austria', 'Dubai' };
정적 배열을 목록으로 선언할 수도 있습니다. 예를 들어:
형식이 있는 Java 문자열
List suit = Arrays.asList( 'Japan', 'India', 'Austria', 'Dubai' );
정적 배열 Java 프로그램
StaticArrayExample.java
public class StaticArrayExample { private static String[] array; static { array = new String[2]; array[0] = 'Welcome to'; array[1] = 'Javatpoint'; } public static void main(String args[]) { for(int i = 0; i <array.length; i++) { system.out.print(array[i] + ' '); } < pre> <p> <strong>Output:</strong> </p> <pre> Welcome to Javatpoint </pre> <p>Let's see another Java program.</p> <p> <strong>StaticArrayExample.java</strong> </p> <pre> public class StaticArrayExample2 { //creates a static array of integer type static Integer[] integerArray; static { integerArray = new Integer[] { new Integer(1), new Integer(2), new Integer(3), new Integer(4), new Integer(5)}; } public static void main(String args[]) { //loop iterate over static array for (int i = 0; i <integerarray.length; i++) { prints array elements system.out.println(integerarray[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 1 2 3 4 5 </pre> <h2>Difference Between Static Array and Dynamic Array</h2> <p>The following table describes the key differences between static array and dynamic array.</p> <table class="table"> <tr> <th>Static Array</th> <th>Dynamic Array</th> </tr> <tr> <td>Static arrays are allocated memory at compile time.</td> <td>Dynamic array is located at run-time.</td> </tr> <tr> <td>The size of static array is fixed.</td> <td>The size of dynamic array is fixed. </td> </tr> <tr> <td>It is located in stack memory space.</td> <td>It is located in heap memory space.</td> </tr> <tr> <td>int array[10]; //array of size 10</td> <td>int* array = new int[10];</td> </tr> </table> <hr></integerarray.length;></pre></array.length;>
다른 Java 프로그램을 살펴보겠습니다.
StaticArrayExample.java
public class StaticArrayExample2 { //creates a static array of integer type static Integer[] integerArray; static { integerArray = new Integer[] { new Integer(1), new Integer(2), new Integer(3), new Integer(4), new Integer(5)}; } public static void main(String args[]) { //loop iterate over static array for (int i = 0; i <integerarray.length; i++) { prints array elements system.out.println(integerarray[i]); } < pre> <p> <strong>Output:</strong> </p> <pre> 1 2 3 4 5 </pre> <h2>Difference Between Static Array and Dynamic Array</h2> <p>The following table describes the key differences between static array and dynamic array.</p> <table class="table"> <tr> <th>Static Array</th> <th>Dynamic Array</th> </tr> <tr> <td>Static arrays are allocated memory at compile time.</td> <td>Dynamic array is located at run-time.</td> </tr> <tr> <td>The size of static array is fixed.</td> <td>The size of dynamic array is fixed. </td> </tr> <tr> <td>It is located in stack memory space.</td> <td>It is located in heap memory space.</td> </tr> <tr> <td>int array[10]; //array of size 10</td> <td>int* array = new int[10];</td> </tr> </table> <hr></integerarray.length;>
정적 배열과 동적 배열의 차이점
다음 표에서는 정적 배열과 동적 배열의 주요 차이점을 설명합니다.
정적 배열 | 동적 배열 |
---|---|
정적 배열은 컴파일 타임에 메모리가 할당됩니다. | 동적 배열은 런타임에 위치합니다. |
정적 배열의 크기는 고정되어 있습니다. | 동적 배열의 크기는 고정되어 있습니다. |
스택 메모리 공간에 위치합니다. | 힙 메모리 공간에 위치합니다. |
정수 배열[10]; //크기 10의 배열 | int* 배열 = 새로운 int[10]; |