二维数组
锯齿数组:有长有短
矩形数组:一样长短
String[][] a=new String[5][];//第二个中括号中空着,表示锯齿数组 String[][] a=new String[5][6];//第二个中括号有值,表示矩形数组
public static void main(String[] args) {
//锯齿数组:有长有短
int[][] b= {
{1,2,3,4},
{5,6},
{7,8,9,10,11},
{12,13,14}
};
for(int i=0;i<b.length;i++) {
for(int j=0;j<b[i].length;j++) {
System.out.print(b[i][j]+" ");
}
System.out.println();
}
System.out.println("-----------");
// String[][] a=new String[5][];//第二个中括号中空着,表示锯齿数组
String[][] a=new String[5][6];//第二个中括号有值,表示矩形数组
for(int i=0;i<a.length;i++) {
for(int j=0;j<a[i].length;j++) {
//(3,5)
a[i][j]="("+i+","+j+")";
}
}
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();
}
}
数组复制
Java中的数组的复制使用System.arraycopy方法就可以实现,System.arraycopy所带参数如下所示:
System.arraycopy(source,srcPos,dest,destPos,length)
复制source数组中从下标srcPos开始的length个元素到目标数组dest,并从目标数组的下标为destPos的位置开始储存 ,其中各个参数的含义如下:
source: 源数组
srcPos: 源数组中的起始位置
dest: 目标数组
destPos:目标数组中的起始位置
length: 要复制的数组元素的个数
public static void main(String[] args) {
int[] a = { 1, 2, 3, 4, 5 };
int[] b = { 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
System.arraycopy(a, 0, b, 1, 4);
System.out.println("b=" + Arrays.toString(b));
}
将a数组中第0索引位置的值复制给b数组,b数组从第1索引位置开始,复制4个元素。
找二维数组最大值
假设初始最大值为第一个数,然后遍历数组,与最大值比较。最小值同样。
public static void main(String[] args) {
int[][] a= {
{1,76},
{2,85},
{3,93},
{4,68},
{5,81}
};
int max=a[0][1];
int id=a[0][0];
for(int i=0;i<a.length;i++) {
if(a[i][1]>max) {
max=a[i][1];
id=a[i][0];
}
}
System.out.println("最大分数是:"+max+",学号是:"+id);
}