数组
数组是具有相同数据的一组数据的集合。例如:球类的集合:足球,篮球,橄榄球等;电器的集合:冰箱,电视,电脑等。在程序的设计之中,可以将这些集合称为数组。数组中的每个元素具有相同的数据类型。在JAVA中同样将数组看作一个对象,虽然基本数据类型不是对象,但由于基本数据类型组成的数组却是对象。
一维数组的创建和使用
一维数组的创建时一组相同类型数据的线性集合。
创建一维数组
数组元素类型 数组名字[ ];
数组元素类型[ ] 数组名字;
int arr[]; //声明int型数组,数组中每一个元素都是Int型数值
Strng str[]; //声明String数组,数组中的每一个元素都是String型数
先声明,再用new运算符进行内存分配
数组名字 = new 数组元素的类型[数组元素的个数]
声明的同时为数组分配内存
数组元素的类型 数组名 = new 数组元素的类型[数组元素的个数]
int month[]=new int[12];
初始化一维数组
int arr[]=new int[]{1,2,3,5,25};
int arr2[]={34,23,12,6};
使用一维数组
使用一维数组将1–12月各月的天数输出。
public class GetDay{
public static void main(String[] args){
int day[]=new int[]{31,28,31,30,31,30,31,31,30,31,30,31};
for(int i=0;i<12;i++){
System.out.println((i+1)+"月有"+day[i]+"天");
}
}
}
二维数组的创建及使用
先声明,再用new运算符进行内存分配
数组元素的类型 数组名字[ ] [ ];
数组元素的类型[ ][ ] 数组名字;
a=new int[2][ ];
a[0]=new int[2];
a[1]=new int[3];
二维数据初始化
type arrayname[][]={value1,value2…valuen};
使用二维数组
public class Matrix{
public static void main(String[] args){
int a[][]=new int[3][4];//创建3个一维数组每个数组长度为4
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
System.out.print(a[i][j]);
}
System.out.println();
}
}
}
总结
一维 int a[]=new int[]{2,3,4,5,6};
二维 int b[][]=new int[][]{{1,2,3,4,},{3,4,5,6,7,8}};
遍历数组
public class Trap{
public static void main(String[] args){
int b[][]=new int[][]{{1},{2,3},{4,5,6}};
for(int k=0;k<b.length;k++){
for(int c=0;c<b[k].length;c++){
System.out.print(b[k][c]);
}
System.out.println();
}
}
}
注意这里的java.lang.ArrayIndexOutOfBoundsException(数组越界)处理方法
详情
填充替换数组元素
fill(int[] a,int value)
fill(int[] a,int fromIndex,int toIndex,int value)
对数组进行排序
Arrays.sort(object)
复制数组
copyof方法
copyOf(arr,int newlength)
copyOfRange方法
copyOfRange(arr,int formIndex,int toIndex)
数组查询
binarySearvh(Object[] a,Object key)
binarySearch(Object[] a,int fromIndex,int toIndex,Object key)
小结
数组的下标是从0开始的,最后一个元素的表示总是"数组名。length-1"