Java-数组

学习目标:

了解Java中的数组


学习内容:

1、 数组的概念
2、 数组的特点
3、 数组的初始化


学习步骤:

1、数组的概念

数组(Array),是多个相同的数据类型按照一定的顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一的管理。

它也是一种容器 可以同时存放 同种数据类型的多个数据

2、数组的特点

1、数组是有序排列的
2、数组属于引用的数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型。但是类型必须一致。
3、创建数组对象会在内存中开辟一整块连续的空间。
4、数组的长度一旦确定就不能修改。

3、数组的初始化

一维数组的初始化分为两种:静态初始化和动态初始化。

      动态初始化
      c语言定义
      int temp[10];

      Java中动态初始化
      类型 对象名 = new 类型;

      数据类型[]  数组名称 = new 数组类型[数组长度];
      静态初始化
      c语言写法
      int temp[]={};

      java中静态初始化
      数据类型[]  数组名称 = new 数组类型{元素1,元素2,元素3......};

注意: 虽然静态初始化没有告诉编译器数组的长度,但是可以根据大括号里面的元素。

public class Demo01Array {
    public static void main(String[] args) {
        //1.数组的动态初始化
        //创建一个数组,用来存放55个int数据
        //学号
        int[] arrayA = new int[55];//动态初始化

        //java成绩
        double[] arrayB = new double[55];

        //姓名
        //String[] arrayC = new String[55];
        //动态初始化可以拆开为两步骤
        String[] arrayC;
        arrayC = new String[55];

        //2.数组的静态初始化
        int[] arraydD = new int[]{1,2,3,4,5};

        //String[] arraydE = new String[]{"hellow","world","java"};
        //不省略额静态初始化可以拆开为两步骤

        String[] arraydE;
        arraydE = new String[]{"hellow","world","java"};

        //3.数组静态初始化的省略写法
        String[] arraydF = {"hellow","world","java"};
        //错误写法,省略静态不能拆开
        //String[] arraydF;
        //arraydF = {"hellow","world","java"};

    }
}

直接打印数组名称,得到的是数组对应的:内存地址的哈希值


public class Demo02ArrayUse {
    public static void main(String[] args) {
        int[] array = {10,20,30,40,50};
        System.out.println(array);
        //数组的下标是从0开始的
        System.out.println(array[0]); //第0号元素
        System.out.println(array[1]);
        System.out.println(array[2]);
        System.out.println(array[3]);
        System.out.println(array[4]);

        System.out.println("========");
        int num =array[3];
        System.out.println(num);
    }
}
运行结果:

在这里插入图片描述

如何调用数组中的指定位置的元素


public class Demo03Array {
    public static void main(String[] args) {
        int[] arrayA = new int[3];
        System.out.println(arrayA);
        System.out.println(arrayA[0]);
        System.out.println(arrayA[1]);
        System.out.println(arrayA[2]);

        System.out.println("===========");

        double[] arrayB = new double[3];
        System.out.println(arrayB);
        System.out.println(arrayB[0]);
        System.out.println(arrayB[1]);
        System.out.println(arrayB[2]);

        System.out.println("===========");

        String[] arrayC = new String[3];
        System.out.println(arrayC);
        System.out.println(arrayC[0]);
        System.out.println(arrayC[1]);
        System.out.println(arrayC[2]);

        System.out.println("===========");

        arrayC[2]="中国女足";
        System.out.println(arrayC[0]);
        System.out.println(arrayC[1]);
        System.out.println(arrayC[2]);
    }

}

运行结果:

在这里插入图片描述

数组的编号从0开始的,到数组长度-1结束
在调用数组指定位置时容易出现:数组越界的问题,数组的空指针异常问题。

package com.hg.day14.demo01;

/*

 */
public class Demo04ArrayIndex {
    public static void main(String[] args) {
        int[] array = {10,20,30};
        System.out.println(array[0]);
        System.out.println(array[1]);
        System.out.println(array[2]);

        System.out.println("=========");

        //System.out.println(array[3]); 错误写法 数组越界异常

        int[] arrayA=null;
        //System.out.println(arrayA[0]);错误写法 空指针异常问题



    }

}

运行结果:

在这里插入图片描述

如何获取数组的长度,并遍历每个元素:

package com.hg.day14.demo01;

public class Demo05Array {
    public static void main(String[] args) {
        int[] array = new int[3];
        int[] arrayB={1,2,3,2,3,2,3,2,3,2,3,2};
        int len=arrayB.length;
        System.out.println(len);

        //数组的长度不可更改
        int[] arrayC = new int[3];
        System.out.println(arrayC.length);
        arrayC=new int[5];//重新分配一个长度为5地址  数组的长度并没有发生变化
        System.out.println(arrayC.length);

        System.out.println("==========");
        //数组的使用
        System.out.println(arrayB[0]);
        System.out.println(arrayB[1]);
        System.out.println(arrayB[2]);
        System.out.println(arrayB[3]);

        System.out.println("==========");
        for (int i = 0; i <5;i++)
        {
            System.out.println(arrayB[i]);
        }

        System.out.println("==========");

        for (int i = 0; i <arrayB.length; i++)
        {
            System.out.print(arrayB[i]);
        }
    }
}

运行结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值