数组(array)

定义:数组是代表一组数据,这组数据是相同数据类型(一般来说它们的逻辑意义也相同),
我们相当于使用一个“统一”的名称来管理一组数据,是相同类型数据的有序集合。

这个名称我们称为“数组名”,这组数据的总个数称为“数组的长度(length)”,
每一个数据我们称为“元素(element)”,每一个数据通过“数组名”+“下标/索引(index)”的方式来表示。

数组的长度获取:数组名.length
数组的元素表示:数组名[下标]
    下标的范围:[0, 数组名.length-1]

声明/定义数组 需要确定3个要素:
   (1)元素的类型:可以是基本数据类型也可以是引用数据类型
   (2)数组名称:命名习惯和规范同普通的变量名一样
   (3)数组的维度,暂时先都声明一维数组

语法格式:
   元素的类型[]  数组名;

例如:int[] scores  //存储一个小组的学员的成绩

           String[] names  //存储一个小组的学员的姓名

           char[] letters  //存储26个英文字母

数组的初始化:
(1)数组的初始化有两种方式

A:静态初始化

B:动态初始化

 (2)初始化的目标
A:数组的元素的个数,即数组的长度==>决定我们在内存(堆内存)中需要给他开辟多大空间
   而且数组的长度一旦确定,就不能修改了。
B:数组的元素值

静态初始化

语法格式:数组名 = new 元素的数据类型[]{元素的值列表};

例如:letters = new char{'a','b','c','d','e'}

   特例:当数组的声明和静态初始化在一个语句中完成的,

可以省略右边的   “new 元素的数据类型[]”,为:

         元素的数据类型[] 数组名 = {元素的值列表}; 例如:char[] letters = {'a','b','c','d','e'}

public class TestArray1{

    public static void main(String[] args) {

        char[] letters = {'a','b','c','d','e'};    //这个静态初始化,确定了,letters数组的长度为5,元素分别是'a','b','c','d','e'

        System.out.println("数组的长度:"+letterrs.length);
       // System.out.println("数组的元素值:" + letters);//不能这样直接显示输出的元素值
                                                       //letters数组名中存储的是这组数据的内存的首地址
        System.out.println("数组的第1个元素值:"+letters[0]);
        System.out.println("数组的第2个元素值:"+letters[1]);
        System.out.println("数组的第3个元素值:"+letters[2]);   
        System.out.println("数组的第4个元素值:"+letters[3]);
        System.out.println("数组的第5个元素值:"+letters[4]);
        //System.out.println("数组的第6个元素值:"+letters[5]);  //报错,ArrayIndexOutOfBoundsException数组下标越界
    }
}


动态初始化

语法格式: 数组名 = new 元素的数据类型[长度];

例如:letters = new char[5]

如果未指定数组的元素内容,光指定数组的长度了,那么元素就是默认值。
byte,short,int,long:0
float,double:0.0
char:\u0000 即编码值为0的空字符
boolean:false
引用数据类型:null

public class TestArray2{
    public static void main(String[] args) {
        
        int[] scores;

        //存储5个学员的成绩
        scores = new int[5];  //在new 数据类型[长度]  后面的中括号中是数组的长度,在数组名[下标]

        System.out.println("数组的长度:" + scores.length);
        System.out.println("第1个学员的成绩:" + scores[0]);//0  数组名[下标]数组名后面的中括号中是下标
        System.out.println("第2个学员的成绩:" + scores[1]);//0
        System.out.println("第3个学员的成绩:" + scores[2]);//0
        System.out.println("第4个学员的成绩:" + scores[3]);//0
        System.out.println("第5个学员的成绩:" + scores[4]);//0
       
    }
}

数组的遍历或数组的迭代:
        for(int i=0; i<数组名.length; i++){                                                                                     
               数组名[i]代表其中一个元素                                                                                              
         }       

     快捷键:itar

        例如:     

public class TestArray3 {
    public static void main(String[] args) {
        char[] letters = {'a','b','c','d','e'};

        //遍历显示数组的元素值
        //数组下标范围:[0, letters.length-1]
        for(int i=0; i<letters.length; i++){
            System.out.println("第" + (i+1) +"个字母是:" + letters[i]);
        }
    }
}

数组的元素的赋值:
    数组名[下标] = 常量值;
    数组名[下标] = 表达式;    //计算表达式,方法调用表达式

可以手动赋值,scores[0] = 89;
        scores[1] = 99;
        scores[2] = 100;
        scores[3] = 78;
        scores[4] = 90;

 //可以从键盘输入为元素赋值
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < scores.length; i++) {
            System.out.print("请输入第"+(i+1) +"个学员的成绩:" );
            //scores[i] 是数组的一个元素,相当于一个变量,它可以用来接收一个xx值
            scores[i] = scanner.nextInt();
        }

                                                                                                                                          

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值