Java - Arrays(数组)

Java - Arrays(数组) 首页 / Java入门教程 / Java - Arrays(数组)

Java提供了一种数据结构-数组,它存储相同类型元素且固定大小的顺序集合,数组用于存储数据集合,但通常将数组视为相同类型的变量集合更有用。

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

声明数组

若要在程序中使用数组,必须声明一个变量来引用该数组。下面是声明数组变量的语法

dataType[] arrayRefVar;   //首选方式。
or
dataType arrayRefVar[];  //有效,但不是首选方式。

以下代码片段是此语法-的示例

double[] myList;   //首选方式。
or
double myList[];   //有效,但不是首选方式。

创建数组

可以使用具有以下语法-的NEW运算符创建数组

arrayRefVar=new dataType[arraySize];

上面的语句做两件事-

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

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 Array

数组处理

在处理数组元素时,无涯教程经常使用for循环或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);
      
      //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引入了一个新的for循环,称为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

数组参数

正如可以将基元类型值传递给方法一样,也可以将数组传递给方法。例如,以下方法显示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;
}

数组方法

Array类包含各种静态方法,用于排序和搜索数组、比较数组以及填充数组元素。

Sr.No.Method & 描述
1

public static int binarySearch(object[]a,object key)

使用二分搜索算法获取指定值,在进行此调用之前,必须对数组进行排序。

2

public static boolean equals(long[]a,long[]a2)

如果两个指定的long数组彼此相等,则返回true。

3

public static void fill(int[]a,int val)

将指定的int值分配给指定int数组的每个元素。

4

public static void sort(object[]a)

根据其元素的自然顺序,将指定的对象数组按升序排序。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

从0开始学架构 -〔李运华〕

持续交付36讲 -〔王潇俊〕

深入拆解Java虚拟机 -〔郑雨迪〕

.NET Core开发实战 -〔肖伟宇〕

数据中台实战课 -〔郭忆〕

现代React Web开发实战 -〔宋一玮〕

深入浅出可观测性 -〔翁一磊〕

深入拆解消息队列47讲 -〔许文强〕

PPT设计进阶 · 从基础操作到高级创意 -〔李金宝(Bobbie)〕

好记忆不如烂笔头。留下您的足迹吧 :)