数组
按数据结构分:一维数组,二维数组,多维数组
用来存放一连串相关的数据
一维数组
有序数据的集合,存放着相同的数据类型
声明与内存的分配
步骤:
1.声明数组
2.分配内存给该数组
即:
数据类型 数组名[];
数组名=new 数据类型[个数];
另一种命名方式:数据类型 数组名称=new 数据类型[];
数组中元素的表示方法
public static void main(String args[])
{
int a[];
a=new int[3];
int i;
for(i=1;i<=3;i++)
{
System.out.print("a["+i+"]="+(a[i])+",\t");
}
System.out.println("\n数组长度为:"+a.length);
}
在Java中取得数组的长度(即数组元素的个数)格式为:数组名.length
数组初值的赋值
public static void main(String args[])
{
int i;
int a[]={5,6,8};
for(i=0;i<a.length;i++)
{
System.out.print("a["+i+"]="+a[i]+"\t");
}
System.out.println("\n数组长度为:"+a.length);
}
除了在声明时赋初值,还可以单独给数组元素赋值,例:
int a[]=new int[];
a[0]=5;
a[1]=6;
a[2]=8;
数组应用范围
public static void main(String args[])
{
int i,max,min;
int A[]={74,48,30,17,62};
min=max=A[0];
System.out.print("数组A的元素包括:");
for(i=0;i<A.length;i++)
{
System.out.print(A[i]+" ");
if(A[i]>max)
max=A[i];
if(A[i]<min)
min=A[i];
}
System.out.println("\n数组的最大值是:"+max);
System.out.println("\n数组的最小值是:"+min);
}
与数组操作有关的API方法
数组的拷贝操作
public static void main(String args[])
{
int a1[]={1,2,3,4,5};
int a2[]={9,8,7,6,5,4,3};
System.arraycopy(a1,0,a2,0,3);
System.out.print("a1数组中的内容:");
for (int i=0;i<a1.length;i++)
System.out.print(a1[i]+"");
System.out.println();
System.out.print("a2数组中的内容");
for(int i=0;i<a2.length;i++)
System.out.print(a2[i]+"");
System.out.println("\数组拷贝完成");
}
拷贝的格式
Syetem.arraycopy(source,0,dest,0,x);
数组的排序
import java.util.*;
public static void main(String args[])
{
int a[]={4,32,45,32,65,32,2};
System.out.print("数组排序前的顺序:");
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
Arrays.sort(a);
System.out.print("\n数组排序后的顺序:");
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
Arrays.sort()这个方法在java.util这个包里,使用这个方法要先导入这个包
二维数组
二维数组的声明与内存分配:
数据类型 数组名[][];
数组名=new 数据类型[行的个数][列的个数];
另:
数据类型 数组名[][]=new 数据类型[行的个数][列的个数];
赋初值
数据类型 数组名[][]=
{
列:
行: {第0行初值},
{第1行初值},
{第2行初值},
‘’‘’‘’
{第n行初值}
}
1.java允许每行的元素的个数不同
2.可以取得二维数组的行数与特定行的元素的个数,列:
数组名.length //取得数组的行数
数组名[行的索引].length //取得特定行元素的个数
二维数组元素的访问与引用
public static void main(String args[])
{
int i,j,sum=0;
int num[][]={{30,35,26,32},{33,34,30,29}};
for(i=0;i<num.length;i++)
{
System.out.print("第"+(i+1)+" 个人的成绩为:");
for(j=0;j<num[i].length;j++)
{
System.out.print(num[i][j]+"");
sum+=num[i][j];
}
System.out.println();
}
System.out.println("\n总成绩是"+sum+"分!");
}
多维数组
8.5上机
public static void main(string atgs[])
{
int max,min;
int a[]={25,24,12,76,98,101,90,28};
min=max=a[0];
for(int i=0;i<a.length;i++)
{
if(max>a[i])
max=a[i];
if(min<a[i])
min=a[i];
System.out.print("a["+i+"]="+a[i]+"\t");
}
System.out.print("\n最大值为"+max);
System.out.print("\n最小值为"+min);
} |