Java 数组
Java提供了一种数据结构,即 数组 ,它可以存储相同类型的固定大小的连续元素集合。数组用于存储数据的集合,但更有用的是将数组视为相同类型变量的集合。
与声明单个变量(如number0,number1,…和number99)不同,您只需声明一个数组变量(如numbers),然后使用numbers[0],numbers[1],…,numbers[99]来表示单个变量。
本教程介绍了如何声明数组变量,创建数组以及使用索引变量处理数组。
声明数组变量
要在程序中使用数组,您必须声明一个变量来引用该数组,并且必须指定变量可以引用的数组类型。以下是声明数组变量的语法-
语法
注意 − 首选样式为 dataType[] arrayRefVar 。样式 dataType arrayRefVar[] 来源于C/C++语言,并被采用在Java中以适应C/C++程序员。
示例
以下代码片段是该语法的示例−
创建数组
您可以使用以下语法使用新运算符创建数组-
语法
以上语句完成两个操作−
- 通过使用 new dataType[arraySize] 创建一个数组。
-
将新创建的数组的引用分配给变量 arrayRefVar。
声明数组变量、创建数组并将数组的引用分配给变量可以合并在一条语句中,如下所示−
或者你可以按以下方式创建数组:
数组元素是通过索引访问的。 索引 。数组索引是基于0的;也就是说,它们从0开始到 arrayRefVar.length-1 。
示例
以下语句声明了一个数组变量myList,并创建了一个由10个双精度类型元素组成的数组,并将其引用赋给myList –
以下图片表示数组myList。这里,myList包含十个双精度值,索引范围从0到9。
处理数组
在处理数组元素时,我们通常使用 for 循环或 foreach 循环,因为数组中的所有元素都是相同的类型,并且数组的大小是已知的。
示例
下面是一个完整的示例,展示了如何创建、初始化和处理数组:
这将产生以下结果 –
输出
foreach循环
JDK 1.5引入了一种新的循环方式,称为foreach循环或增强的for循环,它允许你在不使用索引变量的情况下按顺序遍历整个数组。
示例
以下代码显示了数组myList中的所有元素。
这将产生以下结果 –
输出
传递数组给方法 就像你可以将基本类型的值传递给方法一样,你也可以将数组传递给方法。例如,下面的方法显示了一个整数数组中的元素 – 示例
你可以通过传递一个数组来调用它。例如,以下语句调用printArray方法以显示3、1、2、6、4和2-
示例
从方法返回数组
方法也可以返回一个数组。例如,以下方法返回的数组是另一个数组的逆序 −
示例
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等)也可以使用相同的方法。 |