Java数组01

Java数组01

数组概述

需求:现在需要统计某公司员工的工资情况,例如计算平均工资、找到最高工资等。假设该公司有80名员工,用前面所学的知识,程序首先需要声明80个变量来分别记住每位员工的工资,然后在进行操作,这样做会显得很麻烦。为了解决这种问题,Java就提供了数组供我们使用。

那么数组到底是什么呢?有什么特点呢?通过上面的分析:我们可以得到如下两句话:

数组是存储多个变量(元素)的东西(容器)

这多个变量的数据类型要一致

数组的定义格式

 数组的概念

   数组时候存储用一种数据类型多个元素的容器

   数组既可以存储基本数据类型也可以存储引用数据类型

 数组的定义格式

   格式一:数据类型[] 数组名;--->int[] name1;

   格式二:数据类型 数组名[];--->int name2[];

   注意:这两种定义定义好了后,数组中是没有元素值的。

数组的初始化

 数组初始化概述:

  Java中的数组必须初始化,然后才能使用。

  所谓初始化:就是为数组中的元素分配内存空间,并为每个数组赋值。

 数组的初始化方式:

 <1> 动态初始化:初始化时只指定数组的长度,有系统为数组分配初始值

   格式:数据类型[] 数组名 = new 数据类型[数组长度];

   数组长度其实就是数组中的元素个数。

   举例:int[] arr = new int[3];

   定义了一个int类型的数组,这个数组中可以存放3个int类型的值。

   如何给数组存放数据呢?

   int[] arr = new int[3];

   arr[0] = 12;

   0:下标,也叫索引。代表数组中的第一个值

 <2>静态初始化:初始化时指定每个数组元素的初始值,由系统觉得数组的长度

 数组基本要素:

  1>标识符:数组的名称,用于区分不同的数组

  2>数组元素:向数组中存放的数据

  3>元素下标:对数组元素进行编号,从0开始,数组中每个元素都可以通过下标来访问

  4>元素类型:数组元素的数据类型

案例1:

package com.lyc.test;

public class ArrayDemo01 {

    public static void main(String[] args) {
        //动态初始化:
        //数据类型[] 数组名 = new 数据类型[数组长度];
        int[] arr01 = new int[3];
        arr01[0] = 0;
        arr01[1] = 2;
        arr01[2] = 4;

        System.out.println(arr01[0]);
        System.out.println(arr01[1]);
        System.out.println(arr01[2]);

        System.out.println("-----------------------");
        //静态初始化:
        //数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};
        //int[] arr = new int[]{1,2,3};
        //简化:
        //数据类型[] 数组名 = {元素1,元素2,元素3...};
        //int[] arr = {1,2,3};
        int[] arr02 = {11,22,33,44,55,66,77,88,99,00};
        
        //输出数组名和元素
        System.out.println(arr02[0]);
        System.out.println(arr02[1]);
        System.out.println(arr02[2]);
        
        int len =arr02.length;//获取数组arr02的长度
        System.out.println("长度为:"+len);
    }
}

案例2:循环录入五门科目的成绩,并输出

package com.lyc.test;

import java.util.Scanner;

public class ArrayDemo02 {
    //循环录入五门科目的成绩,并输出
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //定义数组长度
        int[] scores = new int[5];
        //循环录入五位同学的成绩
        for (int i = 0; i < scores.length; i++) {
            System.out.println("请输入第"+(i+1+"位同学的成绩:"));
            scores[i] = sc.nextInt();
        }
        
        //循环输出五位同学的成绩
        for (int i = 0; i < scores.length; i++) {
            System.out.println("第"+(i+1)+"位同学的成绩:"+scores[i]);
        }        
    }
}

结果:

案例三:

package com.lyc.test;

import java.util.Scanner;

public class ArrayDemo03 {
    //循环输入5门成绩,并且打印出最高分和最低分,求总分,求平均分
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //定义数组长度
        int[] scores = new int[5];
        int max = 0;//默认设置最高分为数组的第一个值
        int min = 0;//最低分
        int sum = 0;//总分
        double avg = 0;//平均分
        //循环录入五位同学的成绩
        for (int i = 0; i < scores.length; i++) {
            System.out.println("请输入第"+(i+1)+"位同学的成绩:");
            scores[i] = sc.nextInt();
            sum = sum + scores[i];//获取总分
        }

        for (int i = 0; i < scores.length; i++) {
            if (max<scores[i]) {
                max = scores[i];//获取最高分
            }
        }
        //scores.length-1 为了避免下面进行if判断时出错
        for (int i = 0; i < scores.length-1; i++) {
            if (scores[i]>scores[i+1]) {
                min = scores[i+1];//获取最低分
            }
        }
        
        avg = sum/scores.length;//平均分
        
        System.out.println("最高分:"+max);
        System.out.println("最低分:"+min);
        System.out.println("总分:"+sum);
        System.out.println("平均分:"+avg);
        
    }
}

结果:

 

 

 

原文地址:https://www.cnblogs.com/chao123/p/10291786.html