2021-04-20

学习java第十四天

数组
概念
同一种类型数据的集合。其实数组就是一个容器。

数组的好处
可以自动给数组中的元素从0开始编号,方便操作这些元素。

数组的定义

格式一:

数组存储的数据类型[ ] 数组名字 = new 数组存储的数据类型[长度];
示例:int[] arr = new int[5];

格式二:

数据类型[ ] 数组名 = new 数据类型[]{元素1,元素2,元素3…};
实例:int[] arr = new int[]{3,5,1,7};

int[] arr = {3,5,1,7};

格式三:

数据类型[] 数组名 = {元素1,元素2,元素3…};

如果需要存储大量的数据,例如如果需要读取100个数,那么就需要定义100个变量,显然重复写100次代码,是没有太大意义的。如何解决这个问题,Java语言提供了数组(array)的数据结构,是一个容器可以存储相同数据类型的元素,可以将100个数存储到数组中。

1.数组的概念
同一种类型数据的集合。其实数组就是一个容器。运算的时候有很多数据参与运算,那么首先需要做的是什么.不是如何运算而是如何保存这些数据以便于后期的运算,那么数组就是一种用于存储数据的方式,能存数据的地方我们称之为容器,容器里装的东西就是数组的元素, 数组可以装任意类型的数据,虽然可以装任意类型的数据,但是定义好的数组只能装一种元素, 也就是数组一旦定义,那么里边存储的数据类型也就确定了。

2.数组的好处
存数据和不存数据有什么区别吗?数组的最大好处就是能都给存储进来的元素自动进行编号. 注意编号是从0开始。方便操作这些数据。

例如 学生的编号,使用学号就可以找到对应的学生。

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]);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值