![1167156-20181130150513334-468121408.png](https://i-blog.csdnimg.cn/blog_migrate/af7bf89994514ff7280f0d7334e7ed80.png)
![1167156-20181130150513746-406814137.png](https://i-blog.csdnimg.cn/blog_migrate/63d701f9f8ccb210ce9e00fd01115c86.png)
![1167156-20181130150514741-516837267.png](https://i-blog.csdnimg.cn/blog_migrate/0b6e7f8146ead6da9b16dacdc30aab84.png)
![1167156-20181130150521164-484471268.png](https://i-blog.csdnimg.cn/blog_migrate/352bfae564402456692550474a35cbed.png)
![1167156-20181130150521896-2115365913.png](https://i-blog.csdnimg.cn/blog_migrate/31448af835485879ad635ec93b669132.png)
![1167156-20181130150523148-635083051.png](https://i-blog.csdnimg.cn/blog_migrate/cc43ea5415a0587b2c7bd9b89cd423e3.png)
![1167156-20181130150525000-1610958748.png](https://i-blog.csdnimg.cn/blog_migrate/c1433385d2c4f634b3c088727c56060d.png)
![1167156-20181130150525860-1933446443.png](https://i-blog.csdnimg.cn/blog_migrate/9bedd3155726aef66f59429f0268d8d7.png)
![1167156-20181130150526701-479932547.png](https://i-blog.csdnimg.cn/blog_migrate/2e7d3234635eb2f9bd682d5bd01a894e.png)
![1167156-20181130150526989-671758365.png](https://i-blog.csdnimg.cn/blog_migrate/57b7f729dff8eb1930881674aad06127.png)
![1167156-20181130150527718-382167064.png](https://i-blog.csdnimg.cn/blog_migrate/ffb34645951f522b4eaa45aa554ab5da.png)
![1167156-20181130150528862-1714206962.png](https://i-blog.csdnimg.cn/blog_migrate/471e7f47e96f4e00bf214a51ed24297a.png)
![1167156-20181130150529351-1786129545.png](https://i-blog.csdnimg.cn/blog_migrate/1dfb443b84cf4569f3cd6777c0c5f24c.png)
![1167156-20181130150529877-1773973498.png](https://i-blog.csdnimg.cn/blog_migrate/600531b8e1b4d6353b0fdf0e94a359d9.png)
![1167156-20181130150530583-937560610.png](https://i-blog.csdnimg.cn/blog_migrate/fee82b3882d08e32834d67471b90eff0.png)
![1167156-20181130150531355-887522379.png](https://i-blog.csdnimg.cn/blog_migrate/281097a617b40c3e8c1d2fb735020e65.png)
二、关于数组的用法,有几种方式:2、没事找事用法
第一步:先声明数组
语法:数据类型 数组名[]; 也可以 数据类型[] 数组名;
例:int a[];或者int[] a;
第二步:创建数组
语法:数组名=new 数据类型[数组大小];
例:a=new int[10];
第三步:数组的引用(使用)
语法:数组名[下标]
例:引用a数组的第8个元素 a[7]
要想知道数组的大小可以使用数组的length方法
语法:数组名.length
三、关于数组的用法,有几种方式:3、古板用法 (当已知元素值的时候可以使用此法)
1、初始化数组
语法一维数组
什么是数组?
数组可以存放多个同一类型数据。
数组
一、关于数组的用法,有三种方式: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]
:数据类型 数组名[]={元素值,元素值...};
例: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);
}
}
![1167156-20181130150532240-1911132605.png](https://i-blog.csdnimg.cn/blog_migrate/ce0768b61d553bed34eebae010ca5ce7.png)
-------------------------------------------------------------------------------
数组--一维数组
在运动会上,五个小孩比赛滑轮,他们划完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;
}
}
![1167156-20181130150534872-1532468459.png](https://i-blog.csdnimg.cn/blog_migrate/257ad2a5202d912ab43d5a16fc0e09bc.png)
-------------------------------------------------------------------------------
一维数组--小结
1、数组可存放同一类型数据;
2、简单数据类型(int,float)数组,可直接赋值;
3、对象数组在定义后,赋值时需要再次为每个对象分配空间[即:new 对象];
4、数组大小必须事先指定;
5、数组名可以理解为指向数组首地址的引用;
6、数组的下标是从0开始编号的。