第四章 数组与方法
若想要存放一连串相关的数据,使用数组是个相当好用的选择。此外,如果某个程序片段经常反复出现,那么将它定义成一个方法可以有效地简化程序代码。
数组是由一组相同类型的变量所组成的数据类型,它们以一个共同的名称表示。
一维数组
一维数组可以存放上千万个数据,并且这些数据的数据类型相同。
一维数组的声明和内存存储
一维数组的声明和内存的分配
数据类型数组名[ ] ; // 声明一维数组
数组名 = new 数据类型[个数] ; // 分配内存给数组
数组的数据类型和变量的数据类型一样,数组名的命名原则本着简单明了,和标识符的命令原则一样,这里实用new关键字来定义数组的个数,也就是在内存中存储多少个数据。
实例:
int a[]; //声明一个int类型的a数组
a = newint[3]; //分配的内存空间是存储3个元素
声明数组的时候同时分配内存空间
数据类型数组名[] = new 数据类型[个数]
int a[] = new int[3]
在这个内存的存储上占多少个字节呢,一个int 型数据占4个字节,这个a数组有3个元素,所有在内存中的大小为3*4=12个字节。
数组元素的表示方法
想要使用数组里的元素,可以利用索引来完成。Java 的数组索引编号由 0 开始,
以上一节中的a数组为例, a[0]代表第1个元素, a[1]代表第2个元素,a[2]代表第3个元素。
实例
public classjava41
{
public static void main(String []args)
{
int i,a[];
a=new int[3];
for(i=0;i<3;i++)
System.out.print("a["+i+"]="+a[i]+",\t");
System.out.println("\n shu zu chang dushi :"+a.length);
}
}
这里实用了一个参数是.length,是获取数组的长度
格式:数组名.length
数组的赋值
数据类型数组名[] = {初值 0,初值 1,…,初值 n}(一般程序中实用这种格式来声明数组和分配内存)
int a[] = { 1,2,3,4,5 }
也可以先声明数组在赋值
Int a[] = new int[];
a[0] = 1;
a[1] = 2;
a[2] = 3;
实例:数组中的最大值和最小值
public class java42
{
public static void main(String [] args)
{
int max,min,i,a[]={23,56,28,72,97};
max=min=a[0];
System.out.print("shu zu yuan su : ");
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 shu zu max: "+max);
System.out.println("shu zu min: "+min);
}
}
实例:数组内元素的排序,实用的关键字是sort 方法对数组进行排序,Arrays.sort(数组名)为数组排序的操作。
importjava.util.*;
public classjavasz
{
public static void main(String [] args)
{
int a[] = {4,8,23,21,46,33,2,1};
int b;
b=a.length;
System.out.print("shu zu pai xu qianshun xu : ");
for(int i=0;i<b;i++)
System.out.print(a[i]+" ");
Arrays.sort(a);
System.out.print("\n shu zu pai xu houde xu lie : ");
for(int i=0;i<b;i++)
System.out.print(a[i]+"");
}
}
这个例子中实用了这个包的概念,这里只是一提,等后期还会详细讲解。
二维数组和多维数组
二维数组的声明格式
数据类型数组名[][] ;
数组名 = new 数据类型[行的个数][列的个数] ;
二维数组的声明格式
数据类型数组名[][] = new 数据类型[行的个数][列的个数] ;
二维数组的声明和赋值
数据类型数组名[][] = { {第 0 行初值},
{第1 行初值},
…
{第n 行初值},
};
要特别注意的是,用户不需要定义数组的长度,因此在数组名后面的中括号里不必填入任何的内容。此外,在大括号内还有几组大括号,每组大括号内的初值会依序指定给数组的第 0、1、…、n 行元素。
实例:
int sum[][] = {
{20,30,25},
{33,24,54},
}
值得一提的是 Java 允许二维数组中每行的元素个数均不相同,这点与一般的程序语言是不同的。
Int a[][] = {
{43,87,74},
{32,44,24,98},
{23,42,65},
}
取得二维数组的行数与特定行的元素的个数
数组名.length // 取得数组的行数
数组名[行的索引].length // 取得特定行元素的个数
二维数组的使用
实例
public classjavaew
{
public static void main(String [] args)
{
int a[][]={
{63,72,59},
{78,49,64}
};
int i,j,sum;
sum = 0;
for(i=0;i<a.length;i++)
{
System.out.print("di yi hang neirong :");
for(j=0;j<a[i].length;j++)
{
System.out.print(a[i][j]+"");
sum+=a[i][j];
}
System.out.println();
}
System.out.println("\n zong cheng ji shi: "+sum);
}
}
三维数组,和二位数组的声明和赋值格式一样,但是在再输出的时候加一个for循环。
实例:
public classjava43
{
public static void main(String [] args)
{
int i,j,k;
int sz[][][] ={{{2,34,24,45},{23,55,32,4}},{{32,43,34,3},{43,54,21,4}}};
for(i=0;i<sz.length;i++)
for(j=0;j<sz[i].length;j++)
for(k=0;k<sz[j].length;k++)
{
System.out.print("su["+i+"]["+j+"]["+k+"]= ");
System.out.println(sz[i][j][k]);
}
}
}
这里容易出错的位置是数组赋值的时候。容易混淆,慢慢来希望你能成功。
第四章 数组与方法
若想要存放一连串相关的数据,使用数组是个相当好用的选择。此外,如果某个程序片段经常反复出现,那么将它定义成一个方法可以有效地简化程序代码。
数组是由一组相同类型的变量所组成的数据类型,它们以一个共同的名称表示。
一维数组
一维数组可以存放上千万个数据,并且这些数据的数据类型相同。
一维数组的声明和内存存储
一维数组的声明和内存的分配
数据类型数组名[ ] ; // 声明一维数组
数组名 = new 数据类型[个数] ; // 分配内存给数组
数组的数据类型和变量的数据类型一样,数组名的命名原则本着简单明了,和标识符的命令原则一样,这里实用new关键字来定义数组的个数,也就是在内存中存储多少个数据。
实例:
int a[]; //声明一个int类型的a数组
a = newint[3]; //分配的内存空间是存储3个元素
声明数组的时候同时分配内存空间
数据类型数组名[] = new 数据类型[个数]
int a[] = new int[3]
在这个内存的存储上占多少个字节呢,一个int 型数据占4个字节,这个a数组有3个元素,所有在内存中的大小为3*4=12个字节。
数组元素的表示方法
想要使用数组里的元素,可以利用索引来完成。Java 的数组索引编号由 0 开始,
以上一节中的a数组为例, a[0]代表第1个元素, a[1]代表第2个元素,a[2]代表第3个元素。
实例
public classjava41
{
public static void main(String []args)
{
int i,a[];
a=new int[3];
for(i=0;i<3;i++)
System.out.print("a["+i+"]="+a[i]+",\t");
System.out.println("\n shu zu chang dushi :"+a.length);
}
}
这里实用了一个参数是.length,是获取数组的长度
格式:数组名.length
数组的赋值
数据类型数组名[] = {初值 0,初值 1,…,初值 n}(一般程序中实用这种格式来声明数组和分配内存)
int a[] = { 1,2,3,4,5 }
也可以先声明数组在赋值
Int a[] = new int[];
a[0] = 1;
a[1] = 2;
a[2] = 3;
实例:数组中的最大值和最小值
public class java42
{
public static void main(String [] args)
{
int max,min,i,a[]={23,56,28,72,97};
max=min=a[0];
System.out.print("shu zu yuan su : ");
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 shu zu max: "+max);
System.out.println("shu zu min: "+min);
}
}
实例:数组内元素的排序,实用的关键字是sort 方法对数组进行排序,Arrays.sort(数组名)为数组排序的操作。
importjava.util.*;
public classjavasz
{
public static void main(String [] args)
{
int a[] = {4,8,23,21,46,33,2,1};
int b;
b=a.length;
System.out.print("shu zu pai xu qianshun xu : ");
for(int i=0;i<b;i++)
System.out.print(a[i]+" ");
Arrays.sort(a);
System.out.print("\n shu zu pai xu houde xu lie : ");
for(int i=0;i<b;i++)
System.out.print(a[i]+"");
}
}
这个例子中实用了这个包的概念,这里只是一提,等后期还会详细讲解。
二维数组和多维数组
二维数组的声明格式
数据类型数组名[][] ;
数组名 = new 数据类型[行的个数][列的个数] ;
二维数组的声明格式
数据类型数组名[][] = new 数据类型[行的个数][列的个数] ;
二维数组的声明和赋值
数据类型数组名[][] = { {第 0 行初值},
{第1 行初值},
…
{第n 行初值},
};
要特别注意的是,用户不需要定义数组的长度,因此在数组名后面的中括号里不必填入任何的内容。此外,在大括号内还有几组大括号,每组大括号内的初值会依序指定给数组的第 0、1、…、n 行元素。
实例:
int sum[][] = {
{20,30,25},
{33,24,54},
}
值得一提的是 Java 允许二维数组中每行的元素个数均不相同,这点与一般的程序语言是不同的。
Int a[][] = {
{43,87,74},
{32,44,24,98},
{23,42,65},
}
取得二维数组的行数与特定行的元素的个数
数组名.length // 取得数组的行数
数组名[行的索引].length // 取得特定行元素的个数
二维数组的使用
实例
public classjavaew
{
public static void main(String [] args)
{
int a[][]={
{63,72,59},
{78,49,64}
};
int i,j,sum;
sum = 0;
for(i=0;i<a.length;i++)
{
System.out.print("di yi hang neirong :");
for(j=0;j<a[i].length;j++)
{
System.out.print(a[i][j]+"");
sum+=a[i][j];
}
System.out.println();
}
System.out.println("\n zong cheng ji shi: "+sum);
}
}
三维数组,和二位数组的声明和赋值格式一样,但是在再输出的时候加一个for循环。
实例:
public classjava43
{
public static void main(String [] args)
{
int i,j,k;
int sz[][][] ={{{2,34,24,45},{23,55,32,4}},{{32,43,34,3},{43,54,21,4}}};
for(i=0;i<sz.length;i++)
for(j=0;j<sz[i].length;j++)
for(k=0;k<sz[j].length;k++)
{
System.out.print("su["+i+"]["+j+"]["+k+"]= ");
System.out.println(sz[i][j][k]);
}
}
}
这里容易出错的位置是数组赋值的时候。容易混淆,慢慢来希望你能成功。