「Java SE」数组


数组的创建的访问

一维数组的创建

  • 一维数组的创建有以下几种方法——
    //先声明后定义
    int[] array;
    array = new int[100];
    //直接定义
    int[] array = new int[100];
    //列表定义
    int[] array = {1, 2, 3, 4};

多维数组的创建

  • 下面以二维数组为例介绍多维数组的创建方法
    //直接为每一维分配空间
    int[][] s = new int[3][4];
    //从最高维开始,分别为每一维分配空间
    String[][] s = new String[2][];
    s[0] = new String[2];
    s[1] = new String[3];
    s[0][0] = new String("Good");
    s[0][1] = new String("Luck");
    s[1][0] = new String("to");
    s[1][1] = new String("you");
    s[1][2] = new String("!");

数组的访问

  • 数组的访问直接使用下标即可
  • 一般使用循环遍历数组
    int[] array = {1, 2, 3};
    for(int i = 0; i < array.length; ++i){
        System.out.println(array[i]);
    }
    for(int it : array){
        System.out.println(it);
    }
  • length() 方法,length 属性和 size()方法的区别:
    • length() 方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()方法;
    • length 属性是针对 Java 中的数组来说的,要求数组的长度可以用其 length 属性;
    • Java 中的 size() 方法是针对泛型集合说的, 如果想看这个泛型有多少个元素, 就调用此方法来查看.

数组作为函数参数和返回值

  • 数组作为函数参数
    public static void printArray(int[] array) {
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
    }
  • 数组作为函数返回值
    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类能方便地操作数组,它提供的所有方法都是静态方法(即归属于Arrays类)。

常用方法

Arrays类中有以下常用方法——

  • int binarySearch(Object[] a, Object key)
    二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。
  • boolean equals(long[] a, long[] a2)
    如果两个指定的 long 型数组彼此相等,则返回 true如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(ByteshortInt等)。
  • void fill(int[] a, int val)
    将指定的 int分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(ByteshortInt等)。
  • void sort(Object[] a)
    对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(ByteshortInt等)。
  • copy(Object[] e,newLength)
    其第一个形参指的是需要扩容的数组,后面是扩容后的大小,其内部实现其实是使用了 System.arrayCopy(); 在内部重新创建一个长度为 newLength 类型是Object的数组。
  • toString(Object[] arr)
    将数组arr以字符串的形式输出到终端。

方法调用

因为Arrays类中的方法都是静态的,因此调用时应该使用Arrays.methodName

int[] array = {1, 5, 6, 2, 3};
Arrays.sort(array);
System.out.println(Arrays.toString(array));


文章作者: Hyggge
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Hyggge !
  目录