3 数组

Wu Jun 2018-12-18 21:52:57
05 Java > 00 Java 基础 > 01 基本设计

1. 一维数组

1.1 声明

一旦创建了数组就不能改变它的大小。

int[] a = new int[n];
int a[] = new int[n];

1.2 初始化

数字数组初始化为 0。boolean 数组初始化 false。对象数组初始化 null。

int[] a = {1,2,3} ;
new int[]{1,2,3};

2. 多维数组

java 实际上没有多维数组,只有一维数组,多维数组被解释成“数组的数组”

2.1 声明

int[][] a = new int[n][]

2.2 初始化

int[][] A = {
    {},
    {}
    ...
}

3. Arrays 类

3.1 填充 fill()

Arrays.fill(type[] a,type v);

3.2 排序 sort()

优化的快排

//升序排序 
Arrays.sort(type[] a);
//给开始位到结束位排序
Arrays.sort(type[] a,int start,int end);

3.3 比较 equals()

比较元素是否相等

Arrays.equals(type[] a,type[] b);

3.4 查找 binarySearch()

二分查找,数组一定要是先排好序,返回最后一个找到的位置

Arrays.binarySearch(type[] a,type v);
//范围查找
Arrays.binarySearch(type[] a,type v,int start,int end);

3.5 拷贝 copyOf()

使用 Arrays 类的 copyOf 方法

//深度拷贝
int[] a = Arrays.copyOf(b,b.length);
//扩展
int[] a = Arrays.copyOf(b,b.length*2);
//部分拷贝
Arrays.copyOfRange(a,0,5)

3.6 转字符串 toString()

Arrays.toString(a)
//打印多维数组
Arrays.deepToString()

3.7 转列表 asList()

List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");