Java数组
数组是用来存储同一类型值的集合,可以通过下标来访问其中值.
初始化数组
int[] a = new int[10];//使用new运算符创建数组
int a[] = new int[10];
//两者方式均可,习惯那种就用那种
//创建数组时明确要指明长度
int a[] = new[]{1,2,3,4,5};
int a[] = {1,3,5,7,9};
int a[] = new[10]{1,2,3} //会报错
-
引用概念:
如果变量代表一个数组, a[], 我们称a为引用(变量引用)
与基本类型不同 int i = 0;我们称给i赋值为0.
声明一个int a[] =new int[5] 让a这个引用,指向数组 -
数组一旦创建就不能改变大小.
-
创建一个数值型数组时,所有的元素初始化为0, boolean类型为false,对象数组的元素为null(例如String).
-
下标从0开始; array.length属性访问数组长度,超出范围会产生下标越界的异常(array index out of bounds).
二维数组
int[][] a = new int[5][5];
Array数组
Array和ArrayList有一些区别,可以将 ArrayList想象成一种“会自动扩增容量的Array”.
Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能。
- 导入包
import java.util.Arrays;
- 数组复制
int a[] = new int[] {19, 5, 34, 9 };
int[] b = Arrays.copyOfRange(a, 0, 3);
//copyOfRange(源数组,起始位置,结束位置)
//结束位置的数取不到, 前闭后开
//数组b的元素有: 19,5,34
- 转换为字符串
可以通过toString打印字符串
int a[] = new int[] {19, 5, 34, 9 };
String content = Arrays.toString(a);
//打印内容[]19,5,34,9]
- 排序
Arrays工具类提供了一个sort方法
int a[] = new int[] {19, 5, 34, 9 };
Arrays.sort(a);//直接排序
System.out.println(Arrays.toString(a));
- 搜索
查找元素在元组中的位置
使用binarySearch进行查找之前,必须使用sort进行排序(或者已经完成排序)
如果没有排序使用搜索会返回无法预料的错误的返回值.
假如元组有多个值相同时,返回值是不确定的(返回排在最后的相同结果位置).
查询元素不存在时返回的是负值.
int a[] = new int[] {19, 5, 34, 9 };
Arrays.sort(a);
System.out.println(Arrays.binarySearch(a, 5));
//打印1
- 比较两个数组
int a[] = new int[] {19, 5, 34, 0 };
int b[] = new int[] {19, 5, 34, 1 };
System.out.println(Arrays.equals(a, b));
//打印false
- 填充值
同一个值填满数组(作用不大)
int[] a = new int[10];
Arrays.fill(a, 5);