★14.数组

2017-07-03  本文已影响0人  iDragonfly

关于数组

初始化

一维数组

A[] a = new A[4];  // 基本类型被被初始化为0,对象类型会被初始化为null
A[] b = {new A(), new A(), new A()};
A c = new A[]{new A(), new A()};

多维数组

int[][] a = {{1, 2, 3}, {4, 5, 6}};
int[][] b = new int[2][2];
int[][][] c = new int[2][][];
for (int i = 0; i < c.length; i++) {
    c[i] = new int[2][];
    for (int j = 0; j < c[i].length; j++) {
        c[i][j] = new int[2];
    }
}

数组与泛型

创建泛型实例数组

// 擦除使数组不能知道确切类型
List<Integer>[] a1 = new List<Integer>[10];
List<Integer>[] a2;
List[] a3 = new List[10];
a2 = (List<Integer>[]) a3;  // a2可以绕过检查,创建泛型实例数组

泛型中返回数组

class A<T> {
    // 数组可以知道返回的确切类型
    private T[] fun(T[] arg) {
        return arg;
    }
}

创建泛型参数数组

class A<T> {
    private T[] array;

    public A(int size) {
        array = new T[size];
        array = (T[]) new Object[size];
    }
}

相关工具

Arrays

System.arraycopy()

上一篇 下一篇

猜你喜欢

热点阅读