자바-배열
Java는 데이터 구조를 제공합니다. array, 동일한 유형의 요소의 고정 크기 순차 컬렉션을 저장합니다. 배열은 데이터 모음을 저장하는 데 사용되지만 배열을 동일한 유형의 변수 모음으로 생각하는 것이 더 유용합니다.
number0, number1, ..., number99와 같은 개별 변수를 선언하는 대신 숫자와 같은 하나의 배열 변수를 선언하고 numbers [0], numbers [1] 및 ..., numbers [99]를 사용하여 개별 변수.
이 자습서에서는 인덱스 변수를 사용하여 배열 변수를 선언하고, 배열을 만들고, 배열을 처리하는 방법을 소개합니다.
배열 변수 선언
프로그램에서 배열을 사용하려면 배열을 참조하는 변수를 선언하고 변수가 참조 할 수있는 배열 유형을 지정해야합니다. 다음은 배열 변수를 선언하는 구문입니다.
통사론
dataType[] arrayRefVar; // preferred way.
or
dataType arrayRefVar[]; // works but not preferred way.
Note − 스타일 dataType[] arrayRefVar선호됩니다. 스타일dataType arrayRefVar[] C / C ++ 언어에서 비롯되었으며 C / C ++ 프로그래머를 수용하기 위해 Java에서 채택되었습니다.
예
다음 코드 조각은이 구문의 예입니다.
double[] myList; // preferred way.
or
double myList[]; // works but not preferred way.
배열 생성
다음 구문으로 new 연산자를 사용하여 배열을 만들 수 있습니다.
통사론
arrayRefVar = new dataType[arraySize];
위의 진술은 두 가지를 수행합니다.
new dataType [arraySize]를 사용하여 배열을 생성합니다.
새로 생성 된 배열의 참조를 변수 arrayRefVar에 할당합니다.
배열 변수를 선언하고, 배열을 만들고, 배열의 참조를 변수에 할당하는 것은 아래와 같이 하나의 문으로 결합 될 수 있습니다.
dataType[] arrayRefVar = new dataType[arraySize];
또는 다음과 같이 배열을 만들 수 있습니다-
dataType[] arrayRefVar = {value0, value1, ..., valuek};
배열 요소는 index. 배열 인덱스는 0부터 시작합니다. 즉, 0에서 시작하여arrayRefVar.length-1.
예
다음 명령문은 배열 변수 myList를 선언하고 이중 유형의 10 개 요소로 구성된 배열을 만들고 myList에 대한 참조를 할당합니다.
double[] myList = new double[10];
다음 그림은 배열 myList를 나타냅니다. 여기서 myList는 10 개의 이중 값을 보유하고 인덱스는 0에서 9까지입니다.
배열 처리
배열 요소를 처리 할 때 종종 다음 중 하나를 사용합니다. for 루프 또는 foreach 배열의 모든 요소가 동일한 유형이고 배열의 크기를 알고 있기 때문에 루프가 발생합니다.
예
다음은 배열을 생성, 초기화 및 처리하는 방법을 보여주는 완전한 예입니다.
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// Print all the array elements
for (int i = 0; i < myList.length; i++) {
System.out.println(myList[i] + " ");
}
// Summing all elements
double total = 0;
for (int i = 0; i < myList.length; i++) {
total += myList[i];
}
System.out.println("Total is " + total);
// Finding the largest element
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는 인덱스 변수를 사용하지 않고 전체 배열을 순차적으로 순회 할 수 있도록하는 foreach 루프 또는 향상된 for 루프로 알려진 새로운 for 루프를 도입했습니다.
예
다음 코드는 배열 myList의 모든 요소를 표시합니다-
public class TestArray {
public static void main(String[] args) {
double[] myList = {1.9, 2.9, 3.4, 3.5};
// Print all the array elements
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;
}
배열 클래스
java.util.Arrays 클래스에는 배열 정렬 및 검색, 배열 비교 및 배열 요소 채우기를위한 다양한 정적 메소드가 포함되어 있습니다. 이러한 메서드는 모든 기본 형식에 대해 오버로드됩니다.
Sr. 아니. | 방법 및 설명 |
---|---|
1 | public static int binarySearch(Object[] a, Object key) 이진 검색 알고리즘을 사용하여 지정된 Object 배열 (Byte, Int, double 등)에서 지정된 값을 검색합니다. 이 호출을하기 전에 배열을 정렬해야합니다. 목록에 포함 된 경우 검색 키의 인덱스를 반환합니다. 그렇지 않으면 (– (삽입 지점 + 1))을 반환합니다. |
2 | public static boolean equals(long[] a, long[] a2) 지정된 두 long 배열이 서로 같으면 true를 반환합니다. 두 배열에 동일한 수의 요소가 포함되어 있고 두 배열에서 해당하는 모든 요소 쌍이 동일한 경우 두 배열은 동일한 것으로 간주됩니다. 두 배열이 같으면 true를 반환합니다. 다른 모든 기본 데이터 유형 (Byte, short, Int 등)에서 동일한 방법을 사용할 수 있습니다. |
삼 | public static void fill(int[] a, int val) 지정된 int 배열의 각 요소에 지정된 int 값을 할당합니다. 다른 모든 기본 데이터 유형 (Byte, short, Int 등)에서 동일한 방법을 사용할 수 있습니다. |
4 | public static void sort(Object[] a) 요소의 자연스러운 순서에 따라 지정된 개체 배열을 오름차순으로 정렬합니다. 다른 모든 기본 데이터 유형 (Byte, short, Int 등)에서 동일한 방법을 사용할 수 있습니다. |