一维数组、多维数组

1.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]

二、关于数组的用法,有几种方式: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.1 多维数组

多维数组--二维数组

多维数组我们只介绍二维数组

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();//换行
        }
    }
}

11997621-07fe3ca7582b912a.png
tobehero666.png
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值