一、什么是数组


数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组。同一数组中的变量数据类型相同


二、数组的优点

不使用数组定义100个整型变量:int i1;int i2;…int i100



使用数组定义:int i[100]



同一类型的多个变量可以使用数组来完成



三、数组声明



一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的。



要使用Java的数组,必须经过两个步骤:(1)声明数组、(2)分配内存给该数组。这两个步骤的语法如下:



声明形式一:



声明一维数组:数据类型 数组名[];



int  num [];



分配内存给数组:数组名 =  new 数据类型[长度] ;



int  num [] = new int[10];



声明形式二:



声明一维数组:数据类型[]



int [] num;
 
   
int [] num = new int [10];



数组的声明格式里,“数据类型”是声明数组元素的数据类型,常见的类型有整型、浮点型与字符型等。



“数组名”是用来统一这组相同数据类型的元素的名称,其命名规则和变量的相同,建议使用有意义的名称为数组命名



数组声明后实际上是在栈内存中保存了此数组的名称,接下来便是要在堆内存中配置数组所需的内存,其中“长度”是告诉编译器,所声明的数组要存放多少个元素,



而“new”则是命令编译器根据括号里的长度开辟空间。



四、声明数组,并赋值



package com.pb.demo1;

import java.util.Scanner;

public class demo4 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        //声明字符串数组
        String [] cities=new String [5];
        //赋值
        System.out.println("请输入5个城市的名字:");
        for (int i = 0; i < cities.length; i++) {
            cities[i]=input.next();
        }
        
        //输出 
        System.out.println("输入的城市名称是:");
        for (String city : cities) {
            System.out.println(city);
        }
        
    }

}



五、比较大小和排序



package com.pb.demo1;

import java.util.Scanner;

/*
 * 输入5个学生的成绩,并求出最高分,最低分,平均分 
 */
public class Demo5 {

    public static void main(String[] args) {
        //声明一个扫描器类似的变量
        Scanner input = new Scanner(System.in);
        //声明整形数组
        int [] scores=new int [5];
        System.out.println("请输入5个学生的成绩:成绩为整数");
        //为数组赋值
        for (int i = 0; i < scores.length; i++) {
            scores[i]=input.nextInt();
        }
        //总成绩
        float sum=0;
        //最低分
        int min=0;
        //最高分
        int max=0;
        //平均分
        float avg=0;
        //将第一个值赋为min和max,进行比较
        min=scores[0];
        max=scores[0];
        for (int i = 0; i < scores.length; i++) {
          //总成绩
            sum=sum+scores[i];
            //最低分
            if(scores[i] < min){
                min=scores[i];
            }
            //最高分
            if(scores[i]>max){
                max=scores[i];
            }
            
        }
        System.out.println("总成绩:"+sum);
        System.out.println("最低分:"+min);
        System.out.println("最高低:"+max);
        System.out.println("平均分:"+sum/scores.length);
       
    }

}