一、数组的定义type[] arrayName;
type arrayName[];
推荐第一种
二、数组的初始化
含义:所谓的初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值
(1)静态初始化:arrayName = new type[]{element...};
简略写法就是在定义数组时type[] arrayName = {element...};
(2)动态初始化:arrayName = new type[length];
注意:动态初始化不指定初始值时系统会自动指定初始值。规则如下:
1)若数组元素为基本类型的整数类型(byte,short,int,long):初始值为0
2)若数组元素为基本类型的浮点数类型(float.double):初始值为0.0
3)若数组元素为boolean类型:初始值为false
4)若数组元素为char类型:初始值为'\u0000'
5)若数组元素为引用类型:初始值为null
三、使用数组
引用数组中的元素大致有两种方法:
(1)for循环 for(int i=0;i<arrayName.length;i++){...};
(2)foreach循环 for(type variableName : array){...};
需要注意的是:在foreach循环中的variableName并不是真正的数组元素,而仅仅是数组元素的值,因此在foreach循环中改变variableName的值对于数组元素的值没有影响
四、Java8提供的工具类Arrays
Arrays位于Java.util包下
int binarySearch(type[] a,type key);
:使用二分法查找数组中元素为key的索引,若未找到则返回负数(数组已按升序排列)int binarySearch(type[] a,type key,int fromIndex,inty toIndex);
:使用二分法从索引fromIndex到toIndex查找key元素,若找到就返回此元素的索引,否则返回负数type[] copyOf(type[] original,int length);
:此方法会把原来的数组复制并赋给一个新数组,length是新数组的长度,若length小于original的length,则只复制前length个元素,若length大于original的length,则后面按动态初始化赋值type[] copyOfRange(type[] original,int from,int to);
:与上一个方法类似,但是只复制original数组从from到to的元素boolean equals(type[] a1,type[] a2);
:判断两个数组是否相同,若两个数组长度相等,且元素一一相同,则返回true *void fill(type[] a,type value);
:该方法将数组a的元素的值全部设为valuevoid fille(type[] a,int fromIndex,int toIndex,type value);
:将数组a的元素从fromIndex到toIndex设置为valuevoid sort(type[] a);
:对数组a的元素按排序String toString(type[] a);
:将数组转换成一个字符串,格式为[value,value....]