什么是数组?
数组可以存放多个同一类型数据。
数组
一、关于数组的用法,有三种方式:1、程序员用法
1 、数组的定义
数据类型 数组名[]=new 数据类型[数组大小];
int a[]=new int[5];//定义一个数组名为a的整型数组,并可以放入5个整型数。
说明:这是定义数组的一种方法。
a|a[0]|a[1]|a[2]|a[3]|a[4]|电脑中的数组
3楼|301房|302房|303房|304房|305房|现实中的楼房
楼是存在地球上的,那么数组是存在哪里的呢?-->电脑内存中
2 、数组的引用(使用)
数组名[下标]
比方:你要使用a数组的第三个数a[2]
二、关于数组的用法,有几种方式:2、没事找事用法
第一步:先公告数组
语法:数据类型 数组名[]; 也可以 数据类型[] 数组名;
例:int a[];
或者者int[] a;
第二步:创立数组
语法:数组名=new 数据类型[数组大小];
例:a=new int[10];
第三步:数组的引用(使用)
语法:数组名[下标]
例:引用a数组的第8个元素 a[7]
要想知道数组的大小可以使用数组的length方法
语法:数组名.length
三、关于数组的用法,有几种方式:3、古板用法 (当已知元素值的时候可以使用此法)
1、初始化数组
语法:数据类型 数组名[]={元素值,元素值...};
例:int a[]={2,5,6,7,8,89,90,34,56}
上面的用法相当于:
int a[]=new int[9]int a[0]=2;int a[1]=5;int a[2]=6;...a[8]=56;
2、数组的引用(使用)
语法:数组名[下标]
例:a数组的第8个元素a[7]
一个养鸡场有6只鸡,它们的体重分别是3kg、5kg、1kg,3.4kg、2kg、50kg。请问这六只鸡的总体重是多少?平均体重是多少?请你编写一个程序。
//数组的必要性[Demo129.java]public class Demo129 { public static void main(String[] args) { //定义一个可以存放六个float类型的数组 float arr[]=new float[6]; //使用for循环赋值 //给数组的各个元素赋值 arr[0]=3; arr[1]=5; arr[2]=1; arr[3]=3.4f; arr[4]=2; arr[5]=50; //计算总体重[遍历数组] float all=0; for(int i=0;i<6;i++){ all+=arr[i]; } System.out.println("总体重是:"+all); }}
数组--一维数组
在运动会上,五个小孩比赛滑轮,他们划完100米用时,分别用了10s/12s/5.7s/9s/14s,请编写一个程序,计算他们的平均时间?
public class Demo130{ public static void main(String []args){ //使用古板法定义数组并给数组赋值 float time[]={10,12,5.7f,9,14}; float zs=0; for(int i=0;i<time.length;i++){ zs+=time[i]; } System.out.println("百米平均用时:"+(zs/time.length)+"s"); //如何知道数组的大小?使用数组的length方法便可知道数组大小 System.out.println(time.length); }}
数组
请思考,既然int,float,double..等都可以有数组,那么可不可以有对象数组呢?
对前面的养鸡场的题,进行更新,题要求如下:
一个养狗场有4只狗,分别是:
名字 体重
花花 4.5kg
白白 5.6kg
黑黑 78kg
红红 9.0kg
请编写一个程序,可以计算他们的平均体重,可以找出体重最大和最小的狗的名字,可以通过输入狗的名字,查找它的体重。
//对象数组的使用[Demo131.java]//import java.io.*;import java.util.*;public class Demo131 { public static void main(String[] args) throws Exception {//throws Exception将输入错误踢除程序块 //定义一个对象数组可以存放四只狗的对象数组 Dog dogs[]=new Dog[4]; //给各个狗赋初值 /* dogs[0]=new Dog(); dogs[0].setName("花花"); dogs[0].setWeight(4.5f); dogs[]*/ //从控制台输入各个狗的信息 // InputStreamReader isr=new InputStreamReader(System.in); // BufferedReader br=new BufferedReader(isr); Scanner sr=new Scanner(System.in); for(int i=0;i<4;i++){ dogs[i]=new Dog();//必须要使用new方法将数组指向Dog类 System.out.println("请输入第"+(i+1)+"狗名"); //从控制台读取狗名 String name=sr.nextLine(); //将名字赋给对象 dogs[i].setName(name);//将狗名使用set方法传入Dog类中 System.out.println("请输入"+(i+1)+"狗的体重"); String s_weight=sr.nextLine(); float weight=Float.parseFloat(s_weight); //将名字赋给对象 dogs[i].setWeight(weight);//将狗体重使用set方法传入Dog类中 } //计算总体重 float allWeight=0; for(int i=0;i<4;i++){ allWeight+=dogs[i].getWeight();//将dogs数组中的狗体重从Dog类中取出并累加赋值给总体重 } //计算平均体重 float avgWeight=allWeight/dogs.length; System.out.println("总体重="+allWeight+"\t平均体重="+avgWeight); //找出体重最大的狗 //假设第一狗体重最大 float maxWeight=dogs[0].getWeight(); int maxIndex=0;//定义用于比较体重的下标 //依次和第一只狗比较体重 for(int i=1;i<dogs.length;i++){ if(maxWeight<dogs[i].getWeight()){ //如何比较的狗体重大于第一只狗的体重则进行修改 maxWeight=dogs[i].getWeight(); maxIndex=i; } } //找出体重最小的狗 float minWeight=dogs[0].getWeight(); int minIndex=0; for(int j=1;j<dogs.length;j++){ if(minWeight>dogs[j].getWeight()){ //如何比较的狗体重小于第一只狗的体重则进行修改 minWeight=dogs[j].getWeight(); minIndex=j; } } System.out.println("体重大的狗是第"+(maxIndex+1)+"狗,名字叫:"+dogs[maxIndex].getName()+"\t体重是"+maxWeight); System.out.println("体重小的狗是第"+(minIndex+1)+"狗,名字叫:"+dogs[minIndex].getName()+"\t体重是"+minWeight); //输入狗的名字查狗的体重 System.out.println("请输入你要找的狗的名字:"); String cname=sr.nextLine(); int cIndex=0; for(int k=0;k<dogs.length;k++){ if(cname.equals(dogs[k].getName())){//比照狗名。变量名.equals()方法用于字符串比较内容能否一致。 System.out.println("你要找狗名"+ dogs[cIndex].getName()+"\t体重是"+dogs[cIndex].getWeight()); } } }}//定义一个狗类class Dog{ private String name; private float weight; public String getName() { return name; } public void setName(String name) { this.name = name; } public float getWeight() { return weight; } public void setWeight(float weight) { this.weight = weight; }}
一维数组 -- 小结
1、数组可存放同一类型数据;
2、简单数据类型(int,float)数组,可直接赋值;
3、对象数组在定义后,赋值时需要再次为每个对象分配空间[即:new 对象];
4、数组大小必需事前指定;
5、数组名可以了解为指向数组首地址的引用;
6、数组的下标是从0开始编号的。
===============================================================================
多维数组--二维数组
多维数组我们只详情二维数组
1、定义
语法:类型 数组名[][]=new 类型[大小][大小];
比方:int a[][]=new int[2][3];
2、分析
二维数组在内存中存在的形式
3、案例,请用二维数组输出如下图形
0 0 0 0 0 0
0 0 1 0 0 0
0 2 0 3 0 0
0 0 0 0 0 0
//二维数组演示[Demo138.java]public class Demo138 { public static void main(String[] args) { int a[][]=new int[4][6];//定义二维数组a4行6列 a[1][2]=1; a[2][1]=2; a[2][3]=3; //把图形输出 for(int i=0;i<4;i++){//控制行 for(int j=0;j<6;j++){//控制列 System.out.print(a[i][j]+"\t");//输出数组 } System.out.println();//换行 } }}