Java 数组

Java 数组

Java提供了一种数据结构,即 数组 ,它可以存储相同类型的固定大小的连续元素集合。数组用于存储数据的集合,但更有用的是将数组视为相同类型变量的集合。

与声明单个变量(如number0,number1,…和number99)不同,您只需声明一个数组变量(如numbers),然后使用numbers[0],numbers[1],…,numbers[99]来表示单个变量。

本教程介绍了如何声明数组变量,创建数组以及使用索引变量处理数组。

声明数组变量

要在程序中使用数组,您必须声明一个变量来引用该数组,并且必须指定变量可以引用的数组类型。以下是声明数组变量的语法-

语法

dataType[] arrayRefVar;   // preferred way.
or
dataType arrayRefVar[];  // works but not preferred way.

注意 − 首选样式为 dataType[] arrayRefVar 。样式 dataType arrayRefVar[] 来源于C/C++语言,并被采用在Java中以适应C/C++程序员。

示例

以下代码片段是该语法的示例−

double[] myList;   // preferred way.
or
double myList[];   // works but not preferred way.

创建数组

您可以使用以下语法使用新运算符创建数组-

语法

arrayRefVar = new dataType[arraySize];

以上语句完成两个操作−

  • 通过使用 new dataType[arraySize] 创建一个数组。

  • 将新创建的数组的引用分配给变量 arrayRefVar。

声明数组变量、创建数组并将数组的引用分配给变量可以合并在一条语句中,如下所示−

dataType[] arrayRefVar = new dataType[arraySize];

或者你可以按以下方式创建数组:

dataType[] arrayRefVar = {value0, value1, ..., valuek};

数组元素是通过索引访问的。 索引 。数组索引是基于0的;也就是说,它们从0开始到 arrayRefVar.length-1

示例

以下语句声明了一个数组变量myList,并创建了一个由10个双精度类型元素组成的数组,并将其引用赋给myList –

double[] myList = new double[10];

以下图片表示数组myList。这里,myList包含十个双精度值,索引范围从0到9。

Java 数组

处理数组

在处理数组元素时,我们通常使用 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循环,它允许你在不使用索引变量的情况下按顺序遍历整个数组。

示例

以下代码显示了数组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

传递数组给方法 就像你可以将基本类型的值传递给方法一样,你也可以将数组传递给方法。例如,下面的方法显示了一个整数数组中的元素 – 示例

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 类包含了各种静态方法,用于对数组进行排序和搜索、比较数组以及填充数组元素。这些方法适用于所有的基本类型。

Sr.No. Method & Description
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等)也可以使用相同的方法。
3 public static void fill(int[] a, int val) 将指定的int值分配给指定int数组的每个元素。所有其他基本数据类型(Byte,short,Int等)也可以使用相同的方法。
4 public static void sort(Object[] a) 按照元素的自然顺序,将指定的对象数组按升序排序。所有其他基本数据类型(Byte,short,Int等)也可以使用相同的方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程