Java 배열
배열은 모든 편집 언어에 있어 중요한 데이터 구조 중 하나입니다. 물론 언어마다 배열의 구현 및 처리 방식이 다릅니다.
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];
위 구문은 두 가지 작업을 수행합니다.
1. dataType[arraySize]를 사용하여 배열을 만듭니다.
2. 새로 생성된 배열의 참조를 arrayRefVar 변수에 할당합니다.
배열 변수 선언과 배열 생성은 아래와 같이 하나의 구문으로 완료할 수 있습니다.
dataType[] arrayRefVar = new dataType[arraySize];
또한 다음과 같은 방법으로 배열을 생성할 수도 있습니다. .
dataType[] arrayRefVar = {value0, value1, ..., valuek};
배열의 요소는 인덱스로 액세스됩니다. 배열 인덱싱은 0부터 시작하므로 인덱스 값의 범위는 0부터 arrayRefVar.length-1까지입니다.
예
다음 명령문은 먼저 배열 변수 myList를 선언한 다음 10개의 double 유형 요소가 포함된 배열을 생성하고 해당 참조를 myList 변수에 할당합니다.
double[] myList = new double[10];
아래 이미지는 myList 배열을 보여줍니다. 여기서 myList 배열에는 10개의 double 요소가 있고 해당 첨자의 범위는 0에서 9까지입니다.
배열 처리
배열의 요소 유형과 배열의 크기가 결정되므로 배열 요소를 처리할 때 일반적으로 기본 루프를 사용합니다. 또는 foreach주기.
예제
이 예는 배열을 생성, 초기화 및 조작하는 방법을 완벽하게 보여줍니다.
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에는 첨자를 사용하지 않고도 배열을 순회할 수 있는 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; }
以上实例中result数组作为函数的返回值。
Arrays 类
java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的。具有以下功能:
给数组赋值:通过fill方法。
对数组排序:通过sort方法,按升序。
比较数组:通过equals方法比较数组中元素值是否相等。
查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
具体说明请查看下表:
序号
方法和说明
1 public static int binarySearch(Object[] a, Object key)
用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。
2 public static boolean equals(long[] a, long[] a2)
如果两个指定的 long 型数组彼此相等,则返回 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等)。
以上就是【java教程】Java 数组的内容,更多相关内容请关注PHP中文网(www.php.cn)!