배열 Java

⚡ 스마트 요약

배열 Java 인덱스 기반 컨테이너는 고정 크기의 데이터 타입 요소를 연속적인 메모리에 저장하여 상수 시간 접근, 내장된 경계 검사 기능, 길이 필드를 제공하므로 대부분의 표준 라이브러리 컬렉션의 기반이 됩니다.

  • 📦 고정 크기: 배열은 단일 유형의 요소를 정해진 개수만큼 저장합니다.
  • 🔢 0부터 시작하는 인덱스: 요소의 개수는 0부터 길이에서 1을 뺀 값까지입니다.
  • 🧩 두 가지 유형 : Java 단일 차원 배열과 다차원 배열을 가지고 있습니다.
  • 🛠️ 세 단계 : 모든 배열은 선언되고 생성됩니다. new그리고 초기화되었습니다.
  • 🛡️ 경계 검사: JVM이 오류를 발생시킵니다. ArrayIndexOutOfBoundsException 마지막 슬롯을 지나서.
  • ↩️ 참고 자료: 메서드 내부에서 이루어진 요소 변경 사항은 호출자에게 그대로 유지됩니다.
  • 📏 길이 필드: 모든 배열은 노출됩니다 length 안전한 반복을 위해.

배열 Java

무엇인가? Java 정렬?

A Java 정렬 고정 크기 구조체로, 하나의 데이터 타입 요소들을 연속적인 메모리 공간에 저장합니다. 각 요소는 0부터 시작하는 인덱스로 접근할 수 있으며, 따라서 첫 번째 요소는 10 ... 0 그리고 마지막으로 length - 1배열은 다음을 상속합니다. Object 구현하다 Serializable Cloneable그리고 기본 데이터 유형이나 객체 참조를 저장할 수 있습니다.

배열은 번호가 매겨진 긴 변수들을 대체합니다. 서로 독립적인 여섯 개의 정수를 생각해 보세요.

x0 = 0;
x1 = 1;
x2 = 2;
x3 = 3;
x4 = 4;
x5 = 5;

동일한 6개의 값이 길이가 6인 단일 배열에 저장됩니다.

x[0] = 0;
x[1] = 1;
x[2] = 2;
x[3] = 3;
x[4] = 4;
x[5] = 5;

A 고리 변수를 대괄호 안의 인덱스로 사용할 수 있으므로, 6번의 복사 대신 3줄로 모든 요소를 ​​처리할 수 있습니다.

for (int count = 0; count < 5; count++) {
    System.out.println(x[count]);
}

배열의 종류 Java

Java 배열은 두 가지 형태로 존재합니다.

  1. 1차원 배열: 요소들의 평면적인 목록.
  2. 다차원 배열: 그리드와 행렬에 사용되는 배열의 배열.

배열 변수: 선언, 생성 및 초기화

배열을 사용하는 것은 3 단계 과정선언, 생성 new그런 다음 초기화합니다.

1) 배열을 선언합니다

구문 :

<elementType>[] <arrayName>;

or (이전의 C 스타일 형식이며, 여전히 유효합니다):

<elementType> <arrayName>[];

예:

int[] intArray;   // canonical form: brackets on the type
int intArray2[];  // legacy C-style form, discouraged in new code

2) 배열을 생성합니다

구문 :

arrayName = new dataType[size];

예:

intArray = new int[10]; // defines that intArray will store 10 integer values

선언과 건설의 결합:

int[] intArray = new int[10];

3) 배열을 초기화합니다

intArray[0] = 1; // assigns 1 to the first element (index 0)
intArray[1] = 2; // assigns 2 to the second element (index 1)

선언과 초기화를 한 단계로 완료 배열 리터럴을 사용하여:

int[] intArray = {1, 2, 3, 4};
// initialises an integer array of length 4 where the first element is 1,
// the second element is 2, and so on.

첫 번째 배열 프로그램 Java

단계 1) 다음 코드를 편집기에 복사하세요.

class ArrayDemo {
    public static void main(String args[]) {
        int array[] = new int[7];

        for (int count = 0; count < 7; count++) {
            array[count] = count + 1;
        }

        for (int count = 0; count < 7; count++) {
            System.out.println("array[" + count + "] = " + array[count]);
        }

        // System.out.println("Length of Array  =  " + array.length);
        // array[8] = 10;
    }
}

단계 2) 코드를 저장, 컴파일 및 실행하고 출력 결과를 확인하세요.

예상 출력 :

array[0] = 1
array[1] = 2
array[2] = 3
array[3] = 4
array[4] = 5
array[5] = 6
array[6] = 7

단계 3) If x 배열 참조입니다. x.length 슬롯 개수를 반환합니다. 주석 처리된 첫 번째 줄의 주석을 해제하고 다시 실행하세요.

Length of Array  =  7

단계 4) C와 달리, Java 배열에 접근할 때마다 경계 검사를 수행합니다. 주석 처리된 두 번째 줄의 주석을 해제하고 다시 실행하세요.

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
        at ArrayDemo.main(ArrayDemo.java:11)
Command exited with non-zero status 1

단계 5) JVM이 오류를 발생시킵니다. ArrayIndexOutOfBoundsExceptionC 언어에서는 동일한 접근 시도가 실패하는 대신 인접한 메모리에서 쓰레기 값을 반환합니다.

Java 배열: 참조에 의한 전달

배열은 참조로 메서드에 전달됩니다. 메서드는 참조의 복사본을 받으므로 메서드 내부에서 요소가 변경되면 호출자에게도 변경 사항이 표시됩니다.

예: 배열은 참조로 전달됩니다.

단계 1) 다음 코드를 편집기에 복사하세요.

class ArrayDemo {
    public static void passByReference(String a[]) {
        a[0] = "Changed";
    }

    public static void main(String args[]) {
        String[] b = {"Apple", "Mango", "Orange"};
        System.out.println("Before Function Call    " + b[0]);
        ArrayDemo.passByReference(b);
        System.out.println("After Function Call    " + b[0]);
    }
}

단계 2) 코드를 저장, 컴파일 및 실행하고 출력 결과를 확인하세요.

예상 출력 :

Before Function Call    Apple
After Function Call    Changed

다차원 배열 Java

다차원 배열은 배열의 배열입니다. 각 차원마다 대괄호를 하나씩 추가합니다. 4행 5열의 2차원 정수 그리드를 만들려면 다음과 같이 합니다.

int[][] twoD = new int[4][5];

처음에 가장 왼쪽 치수만 지정하면 됩니다. 나머지 치수는 별도로 지정할 수 있으며, 각 행마다 고유한 길이를 가질 수 있습니다. Java 2차원 배열 참 들쭉날쭉한 배열.

예:

public class Guru99 {
    public static void main(String[] args) {
        // Create a 2-dimensional array with 4 rows and 4 columns.
        int[][] twoD = new int[4][4];

        // Assign three elements to it.
        twoD[0][0] = 1;
        twoD[1][1] = 2;
        twoD[3][2] = 3;

        System.out.print(twoD[0][0] + " ");
    }
}

예상 출력 :

1

자주 묻는 질문

A Java 배열은 하나의 데이터 타입의 요소를 저장하는 고정 크기의 컨테이너입니다. 각 요소는 0부터 시작하는 인덱스로 접근할 수 있으며, 모든 배열은 슬롯 개수를 나타내는 길이 필드를 제공합니다.

int[] arr로 선언하고, new int[size]로 생성한 다음 인덱스로 값을 할당합니다. 이 세 가지 작업을 한 줄로 수행하려면 int[] arr = {1, 2, 3, 4}와 같이 리터럴을 사용합니다.

Java 1차원 배열과 다차원 배열을 모두 지원합니다. 1차원 배열은 평면 리스트이고, 다차원 배열은 테이블, 그리드, 행렬 등에 사용되는 배열의 배열입니다.

배열의 `length` 필드(예: `arr.length`)를 사용하세요. 이 필드는 슬롯 개수를 반환하며 모든 배열 유형에 적용됩니다. 문자열과 달리 배열은 `length`를 메서드 호출이 아닌 필드로 제공합니다.

JVM은 모든 배열 접근 시 경계 검사를 수행합니다. 0보다 작은 인덱스 또는 length 이상인 인덱스를 읽거나 쓰면 ArrayIndexOutOfBoundsException 예외가 발생하여 C 언어에서 흔히 발생하는 메모리 손상 버그를 방지합니다. C++.

Java 인수를 값으로 전달하지만, 배열의 경우 그 값은 참조의 복사본입니다. 이 메서드는 동일한 기본 배열에 대해 작동하므로 메서드 내부에서 요소가 변경되면 호출자에게 표시됩니다.

머신러닝 기반 코드 어시스턴트는 선언-생성-초기화 패턴을 인식하고 리터럴이나 루프를 완성합니다. 또한 런타임에 ArrayIndexOutOfBoundsException 예외를 발생시킬 수 있는 일반적인 오프셋 오류를 표시합니다.

네. GitHub Copilot은 일반 언어로 작성된 주석을 기반으로 배열 선언, 반복문, Arrays.sort 호출 및 2차원 행렬 탐색을 위한 기본 구조를 생성합니다. Rev실제 데이터에 적용하기 전에 생성된 범위를 확인하십시오.

이 게시물을 요약하면 다음과 같습니다.