數組
按數據結構分:一維數組,二維數組,多維數組
用來存放一連串相關的數據
一維數組
有序數據的集合,存放著相同的數據類型
聲明與內存的分配
步驟:
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);
} |