1. 1차원 배열
1.1 1차원 배열의 정의
유형 배열 이름[];유형[] 배열 이름;
유형(type)은 단순 유형 조합 유형을 포함하여 Java의 모든 데이터 유형이 될 수 있습니다. 배열 이름 arrayName은 유효한 식별자이고 []는 변수가 배열 유형 변수임을 나타냅니다.
다른 형식은 C++ 개발자에게 매우 이상할 수 있지만 JAVA나 C#과 같은 개발 언어의 경우 다른 형식이 더 직관적일 수 있습니다. 여기에 정의된 것은 단지 변수일 뿐 시스템이 이를 인스턴스화하지 않기 때문입니다. . 의 경우 변수의 유형만 지정하면 되며, []에는 배열 크기를 지정할 필요가 없습니다. (첫 번째 형태는 단지 과거의 습관과의 호환성을 위한 것인가? 결국 C언어의 영향력이 너무 크다는 것인가?)
예를 들어:
int intArray[]; 정수 배열을 선언하며 배열의 각 요소는 정수 데이터입니다. C나 C++와 달리 자바는 배열 정의에서 배열 요소에 대한 메모리를 할당하지 않는다. 따라서 []는 배열의 요소 개수, 즉 배열의 길이를 나타낼 필요가 없고, 물어볼 수도 없다. 위와 같이 정의된 배열에 관한 모든 것. 이를 위해 메모리 공간을 할당해야 합니다. 이때 new 연산자를 사용해야 합니다. 형식은 다음과 같습니다. arrayName=new type[arraySize]; 그 중 arraySize는 배열의 길이를 지정합니다. 예: intArray=new int[3];
정수 배열에 대해 3개의 int 유형 정수가 차지하는 메모리 공간을 할당합니다.
일반적으로 이 두 부분은 다음 형식으로 결합될 수 있습니다.
유형 arrayName=new type[arraySize]; 예: int intArray=new int[3];
1.2 1차원 배열 요소에 대한 참조
배열을 정의하고 new 연산자를 사용하여 메모리 공간을 할당한 후 배열의 각 요소를 참조할 수 있습니다. 배열 요소는 다음과 같이 참조됩니다.
배열이름[색인]
그중에서 index는 정수 상수 또는 표현식일 수 있는 배열 첨자입니다. 예: a[3], b[i](i는 정수), c[6*I] 등 아래 첨자는 0부터 시작하여 배열에서 1을 뺀 길이까지 올라갑니다. 위 예의 in-tArray 번호에는 다음과 같은 3개의 요소가 있습니다.
intArray[0], intArray[1], intArray[2]. 참고: intArray[3]는 없습니다.
또한 C 및 C++와 달리 Java에서는 안전성을 보장하기 위해 배열 요소에 대한 범위를 벗어난 검사가 필요합니다. 동시에 각 배열에는 해당 길이를 지정하는 길이 속성이 있습니다. 예를 들어 intArray.length는 intArray 배열의 길이를 지정합니다.
공개 클래스 ArrayTest{ 공개 정적 void main(String args[]){ int i; int a[]=new int[5] for(i=0;i<5;i++) a[i]=i; i=a.length-1;i>=0;i--) System.out.println("a["+i+"]="+a[i]) }}
실행 결과는 다음과 같습니다.
C:/>java ArrayTesta[4]=4a[3]=3a[2]=2a[1]=1a[0]=0
이 프로그램은 배열의 각 요소에 값을 할당하고 이를 역순으로 출력합니다.
1.3 1차원 배열의 초기화
위의 예에 따라 배열 요소에 값을 할당할 수 있습니다. 배열이 정의되는 동시에 초기화될 수도 있습니다.
예를 들어:
int a[]={1, 2, 3, 4, 5};
배열의 각 요소를 쉼표(,)로 구분하면 시스템이 배열에 일정량의 공간을 적극적으로 할당합니다.
C와 달리 Java는 이때 배열이 정적일 것을 요구하지 않습니다. 실제로 여기의 변수는 C의 포인터와 유사하므로 다른 함수의 반환 값으로 사용하는 것이 여전히 유효합니다. C, 지역 변수 계속 사용하기 위해 호출 함수로 돌아가는 것은 이제 막 배우는 사람들에게는 매우 쉬운 실수입니다.
2. 다차원 배열
C 및 C++와 마찬가지로 Java의 다차원 배열은 배열의 배열로 간주됩니다. 예를 들어 2차원 배열은 특수한 1차원 배열이고, 각 요소는 1차원 배열입니다. 아래에서는 설명을 위해 주로 2차원 숫자를 사용합니다. 고차원의 상황도 비슷합니다.
2.1 2차원 배열의 정의
2차원 배열은 다음과 같이 정의됩니다.
유형 배열 이름[][];
예를 들어:
int intArray[][];
1차원 배열과 마찬가지로 현재 배열 요소에는 메모리 공간이 할당되지 않습니다. 동시에 각 요소에 액세스하기 전에 new 연산자를 사용하여 메모리를 할당해야 합니다.
고차원 배열의 경우 메모리 공간을 할당하는 방법에는 여러 가지가 있습니다.
1. 다음과 같이 각 차원에 공간을 직접 할당합니다.
int a[][]=new int[2][3];
2. 가장 높은 차원부터 시작하여 다음과 같이 각 차원에 공간을 할당합니다.
int a[][]=new int[2][];a[0]=new int[3];a[1]=new int[3];
1과 동일한 기능을 완료합니다. 이는 각 차원의 길이를 한 번만 지정해야 하는 C 및 C++와 다릅니다.
2.2 2차원 배열 요소에 대한 참조
2차원 배열의 각 요소에 대한 참조 방법은 다음과 같습니다: arrayName[index1][index2] 여기서 index1과 index2는 아래 첨자이며 a[2][3] 등과 같은 정수 상수 또는 표현식일 수 있습니다. 마찬가지로 각 1차원 첨자는 모두 0부터 시작합니다.
2.3 2차원 배열의 초기화
두 가지 방법이 있습니다:
1. 각 요소에 직접 값을 할당합니다.
2. 정의와 동시에 배열을 초기화합니다.
예: int a[][]={{2, 3}, {1, 5}, {3, 4}};
3×2 배열을 정의하고 각 요소에 값을 할당합니다.