JavaRush /Java Blog /Random-KO /자바 배열
articles
레벨 15

자바 배열

Random-KO 그룹에 게시되었습니다

배열

배열은 동일한 유형의 값을 저장하는 데이터 구조입니다. 개별 배열 요소는 정수 인덱스를 사용하여 액세스됩니다. 예를 들어, a가 정수 배열인 경우 a[i] 표현식의 값은 배열의 i번째 정수와 같습니다. Java 배열 - 1배열은 다음과 같이 선언됩니다. 먼저 배열의 유형, 즉 배열에 포함된 요소의 유형을 표시하고 그 뒤에 빈 대괄호 쌍과 변수 이름을 표시합니다. 예를 들어, 정수로 구성된 배열을 선언하는 방법은 다음과 같습니다.
int[] a;
그러나 이 명령문은 а실제 배열로 초기화하지 않고 변수를 선언하기만 합니다. 배열을 생성하려면 연산자를 사용해야 합니다 new.
int[] a = new int [100];
이 연산자는 100개의 정수 배열을 만듭니다. 이 배열의 요소에는 0부터 99까지(1부터 100까지가 아님) 번호가 지정됩니다. 일단 생성되면 루프를 사용하여 배열을 채울 수 있습니다.
int[] а = new int[100];
for (int i = 0; i < 100; i++)
 a[i] = i; //Заполняет массив числами от 0 до 99
100개 요소의 배열을 생성하여 요소 а [100](또는 인덱스가 0~99 범위를 벗어나는 다른 요소)에 액세스하려고 하면 범위를 벗어난 배열 인덱스 예외가 발생하므로 프로그램이 종료됩니다. 배열의 요소 수를 계산하려면 배열 이름 방법을 사용합니다 .length. 예를 들어,
for (int i = 0; i < a.length; i++, System.out.println(a[i]));
배열이 생성되면 크기를 변경할 수 없습니다(물론 개별 요소는 변경할 수 있지만). 프로그램 실행 중에 배열의 크기를 자주 변경해야 한다면 배열 목록이라는 다른 데이터 구조를 사용하는 것이 좋습니다. 배열은 두 가지 방법으로 선언할 수 있습니다.
int[] a;
or
int a[];
int []대부분의 Java 프로그래머는 변수 이름에서 배열 유형(정수 배열)을 더 명확하게 구분하기 때문에 첫 번째 스타일을 선호합니다 .

배열 초기화 프로그램 및 명명되지 않은 배열

Java에는 배열을 생성하고 초기화하는 기능이 있습니다. 다음은 이러한 구문 구조의 예입니다.
int[] smallPrimes = {2, 3, 5, 7, 11, 13};
이 경우 연산자를 사용할 필요가 없습니다 new. 추가적으로, 명명되지 않은 배열을 초기화할 수도 있습니다:
new int[] {16, 19, 23, 29, 31, 37}
이 표현식은 새 배열에 메모리를 할당하고 중괄호 안에 지정된 숫자로 채웁니다. 이 경우 해당 개수가 계산되고 그에 따라 배열의 크기가 결정됩니다. 이 구문 구성은 새 변수를 생성하지 않고 배열을 다시 초기화하는 데 사용하는 것이 편리합니다. 예를 들어, 다음 표현은
smallPrimes = new int{17, 19, 23, 29, 31, 37};
단축된 표현이다
int[] anonymous = {17, 19, 23, 29, 31, 37};
smallPrimes = anonymous;
크기가 0인 배열을 만들 수 있습니다. 이러한 배열은 비어 있는 것으로 판명된 배열을 평가하는 메서드를 작성할 때 유용할 수 있습니다. 길이가 0인 배열은 다음과 같이 선언됩니다.
new тип Элементов[]
이러한 배열은 object 와 동일하지 않습니다 null.

배열 복사

한 배열을 다른 배열로 복사할 수 있지만 두 변수 모두 동일한 배열을 참조합니다.
int[] luckyNumbers = smallPrimes;
luckyNumbers[5] = 12; //Теперь элемент smallPrimes[5]также equals 12
결과는 그림 1에 나와 있습니다. 3.1. 한 배열의 모든 요소를 ​​다른 배열로 복사해야 하는 경우 클래스의 arraycopy 메서드를 사용해야 합니다 System. 호출은 다음과 같습니다.
System.arraycopy(from, fromlndex, to, tolndex, count);
배열은 to복사할 모든 요소를 ​​포함할 만큼 충분히 커야 합니다. Java 배열 - 2
그림 3.1. 배열 복사
예를 들어, 아래 표시된 연산자의 결과는 그림 1에 표시됩니다. 3.2에서는 두 개의 배열을 만든 다음 첫 번째 배열의 마지막 4개 요소를 두 번째 배열에 복사합니다. 복사는 소스 배열의 두 번째 위치부터 시작되고, 복사된 요소는 세 번째 위치부터 대상 배열에 배치됩니다.
int[] smallPrimes = {2, 3, 5, 7, 11, 13};
int[] luckyNumbers = {1001, 1002, 1003, 1004, 1005, 1006, 1007};
System.аrrаусору(smallPrimes, 2, luckyNumbers, 3, 4);
for (int i = 0; i < luckyNumbers.length; i++)
System.out.println(i + ": " + luckyNumbers[i]);
이 명령문을 실행하면 다음과 같은 결과가 생성됩니다.
0: 1001
1: 1002
2: 1003
3: 5
4: 7
5: 11
6: 13
Java 배열 - 3
쌀. 3.2. 배열 요소 복사
Java의 배열은 C++의 배열과 크게 다릅니다. 그러나 실제로는 동적 배열에 대한 포인터와 동일합니다. 즉, 운영자는
int[] a = new int[100]; //Java
연산자와 동일합니다.
int* = new int[100]; //C++,
а не
int a[100]; //C++
Java에서는 []기본 연산자가 인덱스 변경 범위를 확인합니다. 또한 Java에는 포인터 연산 기능이 없습니다. 즉, 배열의 다음 요소에 액세스하기 위해 포인터를 증가시킬 수 없습니다. 소스 링크: Java 배열
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION