8.数组hhhh
六.数组
1.一维数组的声明与应用
【1】代码(数组的声明与输出)
package 第三章;
public class 一维数组 {
public static void main(String args[]) {
int i;
int aa[]=new int[5];//数组的定义数据类型 数组名[]=new 数据类型[元素个数]
for(i=0;i<5;i++)//进入循环
System.out.print("aa["+i+"]="+aa[i]+",\\t");//循环后输出
System.out.println("\\nlength of array aa is "+aa.length); //最后输出长度
}
}
【2】知识点
(1)C语言中基础概念
数组是一组有序数据的集合,数组中各数据的排列是有一定规律的,下标代表数据在数组中的序号;数组中的每一个元素都属于同一种数据类型,不能把不同类型的数据(如学生的成绩和学生的性别)放在一个数组中;C语言中用方括号来表示下标如S[15];
(2)声明
Java中的数组必须先声明,然后才能使用,一维数组声明语法格式如下:
type<数组名>[ ]=new type[<元素个数>];
(3)数组长度
数组元素的个数又被称为该数组的长度,在程序中可以用数组名.length的语句表达方法来获得数组的长度值
2.数组的赋值
【1】代码
package 第三章;
public class 赋值 {
public static void main(String args[]) {
int aa[]=new int[15];
int i;
for(i=0;i<5;i++) {
aa[i]=2*i+1;
System.out.print("aa["+i+"]="+aa[i]+",\\t");
}
}
}
【2】知识点
(1)在声明时直接赋值,语法格式为
type 数组名[ ]={数值1,数值2,……,数值n}
在大括号内依次赋值给数组中的1-n个元素,另外在赋值声明时不需要给出数组长度,编译器会视所给数值个数来决定数组长度。
(2)若是对数组的元素进行有规律赋值,则可以使用循环的方式
3.一维数组程序举例
【1】代码(输出字符串数组Hello!)
package 第三章;
public class 字符串数组Hello {
public static void main(String args[]) {
int i;
char str[]= {'H','e','l','l','o','!'};//定义数组为字符串类型,注意此处输入字符用单引号括起来
for(i=0;i< str.length;i++)
System.out.print(str[i]);
}
}
对比(系统无法理解是变量相加还是输出)
对比(实现字符串拼接,如果单纯把变量用拼接符串联起来的话得到的只是数值相加的结果,如果在旁边加一个拼接符就不会出现歧义)
【2】代码(求出一维数组中的最大值和最小值)
package 第三章;
public class 求数组最值 {
public static void main(String args[]) {
int i,max,min;
int mm[]= {65,89,42,77,62,54};
min=max=mm[0];
System.out.print("Elements in array mm are ");
for(i=0;i<mm.length;i++) {
System.out.print(mm[i]+" ");
if(mm[i]>max)
max=mm[i];
if(mm[i]<min)
min=mm[i];
}
System.out.println("\\nMaximum is "+max);
System.out.println("Manimum is "+min);
}
}
对比(换行符)
【3】代码(8行杨辉三角形)
【4】代码(选择法排列)
【5】代码(二分法查找)
4.二维数组的声明与引用
【1】代码(二维数组的建立与输出)
package 第三章;
public class 二维数组建立 {
public static void main(String args[]) {
int i,j,sum=0;
int ssa[][]= {{20,25,26,22},{23,24,20,28}};//定义一个二维数组
for(i=0;i<ssa.length;i++) {//i<ssa.length表示二维数组行数
for(j=0;j<ssa[i].length;j++) //i<ssa[i].length表示二维数组列数
System.out.print("ssa["+i+"]["+j+"]="+ssa[i][j]+" ");
System.out.println();
}
}
}
【2】代码(杨辉三角形)
【3】知识点
二维数组声明语法格式如下:
type<数组名>[ ][ ]=new type[<行元素个数>][<列元素个数>];
例如:int Myarray[ ][ ]=new int [5][6];
表示5(0-4)行6(0-5)列
在声明时直接赋值,语法格式为
type 数组名[ ][ ]={{数值1,数值2,……,数值n},{数值1,数值2,……,数值n}}
a[i].length表示第i行二维数组列数
a.length表示二维数组行数
5.数组的复制
【1】代码(数组的复制)
package 第三章;
public class 数组复制 {
public static void main(String args[]) {
int i;
int arr1[]= {1,2,3,4,5,6,7,8,9,10};
int arr2[]=new int[10];
System.arraycopy(arr1,0,arr2,0,arr1.length);//把arr1所有的元素复制到arr2中,下标从0开始
for(i=0;i<arr2.length;i++)
System.out.print(arr2[i]+" ");
System.out.println("");
}
}
【2】知识点
Java在System中提供了一个特殊的方法arraycopy()用于实现数组之间的复制
数组的复制不能用等号实现