java中数组的学习完整版一.docx

上传人:b****0 文档编号:17599623 上传时间:2023-07-27 格式:DOCX 页数:26 大小:85.09KB
下载 相关 举报
java中数组的学习完整版一.docx_第1页
第1页 / 共26页
java中数组的学习完整版一.docx_第2页
第2页 / 共26页
java中数组的学习完整版一.docx_第3页
第3页 / 共26页
java中数组的学习完整版一.docx_第4页
第4页 / 共26页
java中数组的学习完整版一.docx_第5页
第5页 / 共26页
java中数组的学习完整版一.docx_第6页
第6页 / 共26页
java中数组的学习完整版一.docx_第7页
第7页 / 共26页
java中数组的学习完整版一.docx_第8页
第8页 / 共26页
java中数组的学习完整版一.docx_第9页
第9页 / 共26页
java中数组的学习完整版一.docx_第10页
第10页 / 共26页
java中数组的学习完整版一.docx_第11页
第11页 / 共26页
java中数组的学习完整版一.docx_第12页
第12页 / 共26页
java中数组的学习完整版一.docx_第13页
第13页 / 共26页
java中数组的学习完整版一.docx_第14页
第14页 / 共26页
java中数组的学习完整版一.docx_第15页
第15页 / 共26页
java中数组的学习完整版一.docx_第16页
第16页 / 共26页
java中数组的学习完整版一.docx_第17页
第17页 / 共26页
java中数组的学习完整版一.docx_第18页
第18页 / 共26页
java中数组的学习完整版一.docx_第19页
第19页 / 共26页
java中数组的学习完整版一.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

java中数组的学习完整版一.docx

《java中数组的学习完整版一.docx》由会员分享,可在线阅读,更多相关《java中数组的学习完整版一.docx(26页珍藏版)》请在冰点文库上搜索。

java中数组的学习完整版一.docx

java中数组的学习完整版一

1.知识点

一维数组:

定义、初始化、使用(相关的算法,常用系统类的使用)

多维数组:

定义、初始化、使用

增强for循环,break、continue控制语句的学习

2.讲解

什么是数组?

例子

//要求把一个班的一门课的成绩,加起来求平均值;

importjava.util.*;

classAverage{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

floatavg=0;

floatsum=0;

intcount=1;

while(count<=3){

sum=sum+sc.nextFloat();

count++;

}

avg=sum/(count-1);

System.out.println("平均值是:

"+avg);

System.out.println("程序结束");

}

}

//新要求:

我要在输出平均值的同时,也要将这门课的最高分,最低分,同时也要能看到这门的成绩

数组概念:

一组能够存储相同数据类型值的变量的集合。

在java中我们本着一切是对象的原则,我们把数组在java中看成是对象,数组对象。

数组是最基本的引用型数据类型。

一维数组的知识点

定义方法:

1、三步法

A、int[]arr;用来申明数组的引用,在栈中为arr开辟内存;

B、arr=newint[5];这是为数组arr在堆中为数组元素开辟6个存储单元;

C、把数组在堆中的起始位置给了arr这个引用变量

*一般我们的程序在运行时,我们为局部变量在栈中开辟内存,而为对象(对象属性)在堆中开辟内存。

为对象方法在方法区开辟内存空间。

为类的属性,在静态区开辟内存空间。

具体的内存图:

2、一步法:

A、int[]arr=newint[6];//这样做完后,arr中有6个元素,它们的默认值是0;

B、int[]arr=newint[]{1,2,3,4};//这样这个数组arr中的元素个数是四个,并且初始值为1,2,3,4;

C、int[]arr={1,2,3,4};//这种做法是静态的声明方法,是为了给c转过来的程序员,方便使用。

importjava.util.*;

classAverage1{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

floatavg=0;

floatsum=0;

intcount=0;

intn=0;

System.out.println("班级人数:

");

try{

n=sc.nextInt();

}catch(InputMismatchExceptione0){

}

float[]cj=newfloat[n];//完成数组的声明

System.out.println("开始输入班级成绩:

");

while(count

try{//完成数组的元素的引用和初始化

cj[count]=sc.nextFloat();

sum+=cj[count];

count++;

}catch(InputMismatchExceptione1){

}

}

avg=sum/n;//avg=sum/count;

for(inti=0;i

//length在这里是数组对象的一个静态属性,它始终存储的是数组的长度。

System.out.print(cj[i]+":

");

}

System.out.print("\b");

System.out.println("平均值:

"+avg);

System.out.println("程序结束");

}

}

通过上面的例子我们完成了一维数组的定义,初始化,并且也完成了数组的输出。

数组最大值、最小值

importjava.util.*;

classScoreHandler{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

floatavg=0;

floatmax=0;

floatmin=0;

floatsum=0;

intcount=0;

intn=0;

StringBuilderresult=newStringBuilder();//这非同步的字符串缓冲类

System.out.println("班级人数:

");

try{

n=sc.nextInt();

}catch(InputMismatchExceptione0){

}

float[]cj=newfloat[n];//完成数组的声明

System.out.println("开始输入班级成绩:

");

while(count

try{//完成数组的元素的引用和初始化

cj[count]=sc.nextFloat();

sum+=cj[count];

count++;

}catch(InputMismatchExceptione1){

}

}

avg=sum/n;//avg=sum/count;

//求最高分

max=cj[0];

for(inti=1;i

if(max

max=cj[i];

}

}

//求最低分

min=cj[0];

for(inti=1;i

if(min>cj[i]){

min=cj[i];

}

}

//完成数组的输出

for(inti=0;i

//System.out.print(cj[i]+":

");

result.append(cj[i]+":

");

}

result.deleteCharAt(result.length()-1);

//result.delete(result.length()-1,result.length());

//System.out.print(result.substring(0,result.length()-1));

//result.setCharAt(result.length()-1,'');

System.out.print(result);

System.out.println();

System.out.println("平均值:

"+avg+":

最高分:

"+max+":

最低分:

"+min);

System.out.println("程序结束");

}

}

以上是通过分步来求最大、最小;下面我们把求最大最小的过程进行封装成一个方法来简化求解过程,方便以后多次求解同类问题。

importjava.util.*;

classScoreHandler1{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

floatavg=0;

floatmax=0;

floatmin=0;

//floatsum=0;

intcount=0;

intn=0;

StringBuilderresult=newStringBuilder();//这非同步的字符串缓冲类

System.out.println("班级人数:

");

try{

n=sc.nextInt();

}catch(InputMismatchExceptione0){

}

float[]cj=newfloat[n];//完成数组的声明

System.out.println("开始输入班级成绩:

");

while(count

try{//完成数组的元素的引用和初始化

cj[count]=sc.nextFloat();

//sum+=cj[count];

count++;

}catch(InputMismatchExceptione1){

}

}

//同过调用求平均值的放法来求一门课的平均值

avg=average(cj);

//求最高分

max=maxScore(cj);

//求最低分

min=minScore(cj);

//完成数组的原样输出

for(inti=0;i

//System.out.print(cj[i]+":

");

result.append(cj[i]+":

");

}

//修剪输出的数组字符串中的":

"号

result.deleteCharAt(result.length()-1);

//result.delete(result.length()-1,result.length());

//System.out.print(result.substring(0,result.length()-1));

//result.setCharAt(result.length()-1,'');

System.out.print(result);

System.out.println();

System.out.println("平均值:

"+avg+":

最高分:

"+max+":

最低分:

"+min);

System.out.println("程序结束");

}

//功能方法的分解,封装。

//求平均值的方法

publicstaticfloataverage(float[]arr){

floatavg=0;

floatsum=0;

for(inti=0;i

sum+=arr[i];

}

avg=sum/arr.length;

returnavg;

}

//求最高分方法

publicstaticfloatmaxScore(float[]arr){

floatmax=arr[0];

for(inti=1;i

if(max

max=arr[i];

}

}

returnmax;

}

//求最低分方法

publicstaticfloatminScore(float[]arr){

floatmin=arr[0];

for(inti=1;i

if(min>arr[i]){

min=arr[i];

}

}

returnmin;

}

}

方法的定义(声明):

方法就是一段功能明确的程序,被命名的,可以再程序中反复调用的程序段。

[访问修饰符][普通修饰符][返回值类型]方法名([形式参数])[throws]{

方法体;

[return;]

}

Eg:

publicstaticfloatminScore(float[]arr){

floatmin=arr[0];

for(inti=1;i

if(min>arr[i]){

min=arr[i];

}

}

returnmin;

}

方法的重载:

两个方法的名字一样,但参数的个数或类型或顺序不一样,这时我们说方法法生了重载。

其中我们把方法中的方法名,以及参数的个数,类型,顺序,叫做方法的型构。

换句话说我们可以说如果两个方法的型构不一样,我们说着两个方法发生了重载。

publicstaticvoidscoreInput(float[]arr,Scannersc){

inti=0;

while(i

//完成数组的元素的引用和初始化

try{

arr[i]=sc.nextFloat();

//sum+=cj[count];

i++;

}catch(InputMismatchExceptione){

System.out.println(e.getMessage());

}

}

}

//输入方法二(这里发生了方法的重载)

publicstaticvoidscoreInput(float[]arr){

Scannersc=newScanner(System.in);

inti=0;

while(i

//完成数组的元素的引用和初始化

try{

arr[i]=sc.nextFloat();

//sum+=cj[count];

i++;

}catch(InputMismatchExceptione){

System.out.println(e.getMessage());

}

}

}

二维数组:

是由若干一维数组组成。

它包含行和列;一行就是一个一维数组。

所以我们在声明二维数组时可以一次到位的声明二维数组,也可以多次声明多个一维数组来完成二维数组的声明。

二维数组的声明和使用

int[][]arr=newint[2][2];

也可以

int[][]arr;

arr=newint[2][3];

classArray2{

publicstaticvoidmain(String[]args)

{

intarr[][]=newint[2][2];

System.out.println("二维数组的输入");

//输入

for(inti=0;i

for(intj=0;j

arr[i][j]=j;

}

}

//输出

System.out.println("二维数组的输出");

for(inti=0;i

for(intj=0;j

System.out.print(arr[i][j]+"");

}

System.out.println();

}

System.out.println("结束!

");

}

}

也可以

int[][]arr=newint[][]{{2,2},{2,2}};

classArray3{

publicstaticvoidmain(String[]args)

{

int[][]arr=newint[][]{{2,2},{2,2}};

//输出

System.out.println("二维数组的输出");

for(inti=0;i

for(intj=0;j

System.out.print(arr[i][j]+"");

}

System.out.println();

}

System.out.println("结束!

");

}

}

也可以

int[][]arr={{2,2},{2,2}};

classArray4{

publicstaticvoidmain(String[]args)

{

int[][]arr={{2,2},{2,2}};

//输出

System.out.println("二维数组的输出");

for(inti=0;i

for(intj=0;j

System.out.print(arr[i][j]+"");

}

System.out.println();

}

System.out.println("结束!

");

}

}

也可以

int[][]arr=newint[2][];

arr[0]=newint[2];

arr[1]=newint[3];

classArray5{

publicstaticvoidmain(String[]args){

int[][]arr=newint[2][];

arr[0]=newint[2];

arr[1]=newint[3];

System.out.println("二维数组的输入");

//输入

for(inti=0;i

for(intj=0;j

arr[i][j]=j;

}

}

//输出

System.out.println("二维数组的输出");

for(inti=0;i

for(intj=0;j

System.out.print(arr[i][j]+"");

}

System.out.println();

}

System.out.println("结束!

");

}

}

二维综合

//计算一个班英语,数学,计算机科目的最高、最低分以及平均分。

importjava.util.*;

classScoreHandler4{

staticfinalString[]KM={"英语","数学","计算机","体育","政治","网络"};

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

intpersonNum=0;//班级人数

intclassNum=0;

//成绩记录相关变量声明

float[][]cj=null;

float[][]tongJi=null;//约定依次统计各门科目平均值,最高分,最低分;科目顺序是英语,数学,计算机

//输出结果的处理变量声明

StringBuilderresult[];

//完成科目数量的输入

System.out.println("班级课程数目:

");

try{

classNum=sc.nextInt();

}catch(InputMismatchExceptione0){

}

System.out.println("班级人数:

");

//完成班级人数的输入

try{

personNum=sc.nextInt();

}catch(InputMismatchExceptione0){

}

//完成成绩记录数组的初始化

cj=newfloat[classNum][personNum];

//完成结果统计数组的初始化

tongJi=newfloat[3][classNum];

//输出结果的处理变量初始化

result=newStringBuilder[classNum];

for(inti=0;i

result[i]=newStringBuilder();

}

//班级各门课目成绩的输入

System.out.println("成绩输入开始:

");

scoreInput(cj);

//通过调用求平均值的放法来求每门课的平均值

//求最高分

//求最低分

for(introw=0;row

for(intcol=0;col

switch(row){

case0:

tongJi[row][col]=average(cj[col]);break;//计算各门课目平均值,依次为英语,数学,计算机

case1:

tongJi[row][col]=maxScore(cj[col]);break;//计算各门课目最高分,依次为英语,数学,计算机

case2:

tongJi[row][col]=minScore(cj[col]);break;//计算各门课目最低分,依次为英语,数学,计算机

}

}

}

//修剪输出的数组字符串中的":

"号并完成数组的原样输出

for(introw=0;row

result[row]=scoreOutput(cj[row]);//处理好英语数学计算机的原样成绩的输出格式

}

//结果的输出

for(introw=0;row

/*switch(row){

case0:

System.out.println("英语原始成绩:

"+result[row]);

for(intcol=0;col

switch(col){

case0:

System.out.print("英语平均值:

"+tongJi[col][row]+"");break;

case1:

System.out.print("英语最高分:

"+tongJi[col][row]+"");break;

case2:

System.out.print("英语最低分:

"+tongJi[col][r

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2