자바 배열
배열은 모든 프로그래밍 언어에 있어 중요한 데이터 구조 중 하나입니다. 물론 언어마다 배열을 다르게 구현하고 처리합니다.
Java 언어로 제공되는 배열은 동일한 유형의 고정 크기 요소를 저장하는 데 사용됩니다.
100개의 독립 변수 number0, number1, ...., number99를 직접 선언하는 대신 숫자[100]과 같은 배열 변수를 선언할 수 있습니다.
이 튜토리얼에서는 Java 배열의 선언, 생성 및 초기화를 소개하고 해당 코드를 제공합니다.
배열 변수 선언
먼저, 프로그램에서 배열을 사용하려면 먼저 배열 변수를 선언해야 합니다. 다음은 배열 변수 선언을 위한 구문입니다.
dataType[] arrayRefVar; // 首选的方法 或 dataType arrayRefVar[]; // 效果相同,但不是首选方法
참고: 배열 변수를 선언하려면 dataType[] arrayRefVar의 선언적 스타일을 사용하는 것이 좋습니다. dataType arrayRefVar[] 스타일은 C/C++ 언어에서 유래되었으며 C/C++ 프로그래머가 Java 언어를 빠르게 이해할 수 있도록 Java에서 채택되었습니다.
예제
다음은 이 두 구문의 코드 예제입니다.
double[] myList; // 首选的方法 或 double myList[]; // 效果相同,但不是首选方法
배열 생성
Java 언어는 new 연산자를 사용하여 배열을 생성하며 구문은 다음과 같습니다.
arrayRefVar = new dataType[arraySize];
위 구문 문은 두 가지 작업을 수행합니다. things:
1. dataType[arraySize]를 사용하여 배열을 만듭니다.
2 새로 생성된 배열의 참조를 arrayRefVar 변수에 할당합니다.
배열 변수 선언과 배열 생성은 아래와 같이 하나의 명령문으로 완료할 수 있습니다.
dataType[] arrayRefVar = new dataType[arraySize];
또한 다음과 같은 방법으로 배열을 생성할 수도 있습니다.
dataType[] arrayRefVar = {value0, value1, ..., valuek};
배열의 요소는 인덱스로 액세스됩니다. 배열 인덱싱은 0부터 시작하므로 인덱스 값의 범위는 0부터 arrayRefVar.length-1까지입니다.
Example
다음 문은 먼저 배열 변수 myList를 선언한 다음 10개의 double 유형 요소가 포함된 배열을 만들고 해당 참조를 myList 변수에 할당합니다.
public class TestArray { public static void main(String[] args) { // 数组大小 int size = 10; // 定义数组 double[] myList = new double[size]; myList[0] = 5.6; myList[1] = 4.5; myList[2] = 3.3; myList[3] = 13.2; myList[4] = 4.0; myList[5] = 34.33; myList[6] = 34.0; myList[7] = 45.45; myList[8] = 99.993; myList[9] = 11123; // 计算所有元素的总和 double total = 0; for (int i = 0; i < size; i++) { total += myList[i]; } System.out.println("总和为: " + total); } }
위 예제의 출력 결과는 다음과 같습니다.
总和为: 11367.373
아래 그림은 myList 배열을 보여줍니다. 여기서 myList 배열에는 10개의 double 요소가 있고 해당 첨자의 범위는 0에서 9까지입니다.
배열 처리
배열의 요소 유형과 배열의 크기가 결정되므로 배열 요소를 처리할 때 일반적으로 기본 루프나 foreach 루프를 사용합니다.
Example
이 예제는 배열을 생성, 초기화 및 조작하는 방법을 완전히 보여줍니다.
public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // 打印所有数组元素 for (int i = 0; i < myList.length; i++) { System.out.println(myList[i] + " "); } // 计算所有元素的总和 double total = 0; for (int i = 0; i < myList.length; i++) { total += myList[i]; } System.out.println("Total is " + total); // 查找最大元素 double max = myList[0]; for (int i = 1; i < myList.length; i++) { if (myList[i] > max) max = myList[i]; } System.out.println("Max is " + max); } }
위 예제는 다음과 같이 결과를 컴파일하고 실행합니다.
1.9 2.9 3.4 3.5 Total is 11.7 Max is 3.5
foreach 루프
JDK 1.5에는 It이라는 새로운 루프 유형이 도입되었습니다. 첨자를 사용하지 않고 배열을 순회할 수 있는 foreach 루프 또는 향상된 루프입니다.
예제
이 예는 myList 배열의 모든 요소를 표시하는 데 사용됩니다.
public class TestArray { public static void main(String[] args) { double[] myList = {1.9, 2.9, 3.4, 3.5}; // 打印所有数组元素 for (double element: myList) { System.out.println(element); } } }
위 예의 컴파일 및 실행 결과는 다음과 같습니다.
1.9 2.9 3.4 3.5
배열을 함수의 매개변수로
배열을 다음으로 전달할 수 있습니다. 메서드를 매개변수로 사용합니다. 예를 들어, 다음 예제는 int 배열의 요소를 인쇄하는 메서드입니다.
public static void printArray(int[] array) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } }
다음 예제에서는 printArray 메서드를 호출하여 3, 1, 2, 6, 4 및 2를 인쇄합니다.
printArray(new int[]{3, 1, 2, 6, 4, 2});
배열은 함수의 반환 값으로 사용됩니다
public static int[] reverse(int[] list) { int[] result = new int[list.length]; for (int i = 0, j = result.length - 1; i < list.length; i++, j--) { result[j] = list[i]; } return result; }
위 예에서는 결과 배열이 함수의 반환 값으로 사용됩니다.
Arrays 클래스
java.util.Arrays 클래스는 배열을 편리하게 조작할 수 있으며, 이 클래스가 제공하는 모든 메소드는 정적입니다. 다음과 같은 기능이 있습니다:
채우기 메소드를 통해 배열에 값을 할당합니다.
배열 정렬: 오름차순으로 정렬 방법을 사용합니다.
배열 비교: equals 메소드를 통해 배열의 요소 값이 동일한지 비교합니다.
배열 요소 검색: BinarySearch 메서드를 통해 정렬된 배열에 대해 이진 검색 작업을 수행할 수 있습니다.
구체적인 지침은 아래 표를 참조하세요.
일련번호 | 방법 및 지침 |
---|---|
1 | public static int BinarySearch(Object[] a, Object key) 주어진 배열에서 주어진 값을 갖는 객체(Byte, Int, double 등)를 검색하려면 이진 검색 알고리즘을 사용합니다. 호출하기 전에 배열을 정렬해야 합니다. 조회 값이 배열에 포함되어 있으면 검색 키의 인덱스를 반환하고, 그렇지 않으면 (-(insertion point) - 1)을 반환합니다. |
2 | public static boolean =(long[] a, long[] a2) 지정된 두 개의 긴 배열이 서로 동일이면 true를 반환합니다. 두 배열에 동일한 수의 요소가 포함되어 있고 두 배열의 해당 요소 쌍이 모두 동일한 경우 두 배열은 동일한 것으로 간주됩니다. 즉, 두 배열이 동일한 순서로 동일한 요소를 포함하면 동일합니다. 다른 모든 기본 데이터 유형(Byte, short, Int 등)에도 동일한 접근 방식이 적용됩니다. |
3 | public static void fill(int[] a, int val) int 유형의 지정된 배열의 지정된 범위에 있는 각 요소에 지정된 int 값을 할당합니다. 다른 모든 기본 데이터 유형(Byte, short, Int 등)에도 동일한 접근 방식이 적용됩니다. |
4 | public static void sort(Object[] a) 해당 요소의 기본 순서에 따라 지정된 개체 배열을 오름차순으로 정렬합니다. 다른 모든 기본 데이터 유형(Byte, short, Int 등)에도 동일한 접근 방식이 적용됩니다. |