>  기사  >  Java  >  [자바 튜토리얼] 자바 배열

[자바 튜토리얼] 자바 배열

黄舟
黄舟원래의
2016-12-26 13:22:091295검색

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)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.