念两句诗

14. Java数组

2023-06-02 浏览 JAVA速记 785字 4 min read

Java语言中数组是用来存储固定大小的同类型元素。

声明数组

数组变量必须先声明,才能在程序中使用,一般有以下两种方式:

dataType[] arrayRefVar;   // 首选的方法
 
或
 
dataType arrayRefVar[];  // 效果相同,但不是首选方法

创建数组

Java语言使用new操作符来创建数组

arrayRefVar = new dataType[arraySize];

new操作符做了两件事:

  • 使用dataType[arraySize]创建了一个数组
  • 将数组的引用赋值给变量arrayRefVar

简写形式如下:

dataType[] arrayRefVar = new dataType[arraySize];

或

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

处理数组

使用基本循环或者For-Each循环

//基本循环
for(;;){
}
//for-each循环,可以在不使用下标的情况下遍历数组
for(type element: array){
	//
}

数组作为参数和返回值

//数组作为函数的参数
public static void printArray(int[] array)
//数组作为函数的返回值
public static int[] reverse(int[] list)

多维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组

String[][] str = new String[3][4];

多维数组的动态初始化

  • 直接为每一维分配空间

    type[][] typeName = new type[typeLength1][typeLength2];
    
  • 从最高维开始,分别为每一维分配空间

    String[][] s = new String[2][];
    s[0] = new String[2];
    s[1] = new String[3];
    

多维数组的引用

//对二维数组中的每个元素,引用方式为 arrayName[index1][index2]
num[1][0];

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等)。
EOF