java数组

数组的概述和静态初始化

数组指的是一种容器,可以用来存储同种数据类型的多个值。

数组容器在存储数据的时候,需要结合隐式转换考虑。

int(byte,short,int)

double(byte,short,int,long,float,double)

建议:容器的类型,和存储的数据类型保持一致。

  • 数组的定义:

格式一:数据类型[] 数组名 格式二: 数据类型 数组名[]

范例: int[] array 范例: int array[]

  • 数组的初始化

初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程。

  1. 静态初始化

  1. 动态初始化

(静)数据类型 [] 数组名 = new 数据类型 [] {元素1,元素2,元素3...}

范例: int[] array = new int[]{11,22,33};

范例: double[] arrary2 = new double[]{11.1,22.2,33.3};

简写格式: 数据类型 [] 数组名 = {元素1,元素2,元素3...}

数组一旦创建完毕,其长度便不再更改

public class Array {
    public static void main(String[] args) {
        //需求:定义数组存储5个学生的年龄
        int[] arr1 = new int[]{11,12,13,14,15};
        int[] arr2 = {11,12,13,14,15};

        //需求: 定义数组存储3个学生的姓名
        String[] arr3 = new String[]{"zhangsan","lisi","wangwu"};
        String[] arr4 = {"zhangsan","lisi","wangwu"};

        //需求: 定义数组存储4个学生的身高
        double[] arr5 = new double[]{1.93,1.75,1.73,1.81};
        double[] arr6 = {1.93,1.75,1.73,1.81};
    }
}

double[] arr6 = {1.93,1.75,1.73,1.81};

System.out.println(arr6);

[D@6bc7c054 (地址值)

解释一下地址值的格式含义:

[ : 表示当前是一个数组

D : 表示当前数组里面的元素都是double类型的

@ : 表示一个间隔符号。 (固定格式)

6bc7c054 : 才是数组真正的地址值 。(十六进制)

平时我们习惯性的会把这个整体叫做数组的地址值。

  • 数组的访问:

格式: 数组名[索引]; 索引:也叫做下标,角标。

public class Souyin {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        int number1 = arr[0];
        int number2 = arr[1];
        System.out.println(arr[0]+"和"+arr[1]);
    }
}

把数据存储到数组当中:

格式: 数组名[索引] = 具体数据/变量;

细节: 这个是覆盖处理,原来的元素就不存在了;

数组的遍历和三道综合练习

遍历:遍历指的是取出数据的过程,不要局限的理解为,遍历就是打印!

在Java当中,关于数组的一个长度属性,length

调用方式: 数组名.length

System.out.println(arr.length);

自动的快速生成数组的遍历方式

idea提供的

数组名.fori

  • eg:遍历数组并求和

定义一个数组,储存1,2,3,4,5

遍历数组得到每一个元素,求数组里面所有的数据和。

public class Bianli {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5};
        System.out.println("遍历结果:");
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
            sum+=arr[i];
        }
        System.out.println("所求和得到的结果是"+sum);
    }
}

eg:统计个数

定义一个数组,存储1,2,3,4,5,6,7,8,9,10

遍历数组得到每一个元素,统计数组里面一共有多少个能被3整除的数字

public class Zuoti {
    public static void main(String[] args) {
        int[] arr = {1,2,3,4,5,6,7,8,9,10};
        System.out.println("遍历结果为:");
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
            if(arr[i]%3 == 0)
                sum++;
        }
        System.out.println("其中能被3整除的数有"+sum);
    }
}

eg:变化数据

定义一个数组,存储1,2,3,4,5,6,7,8,9,10

遍历数组得到每一个元素

要求:

1,如果是奇数,将当前数字扩大两倍。

2,如果是偶数,将当前数字变为二分之一。

public class Darray {
    public static void main(String[] args) {
        int[] arr = new int[]{1,2,3,4,5,6,7,8,9,10};
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]%2==1){
                arr[i] = arr[i]*2;
            }else if(arr[i]%2==0){
                arr[i] = arr[i]/2;
            }else
            {
                System.out.println("输入有问题!");
            }
        }
        System.out.println("改变后的数组结果为:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
    }
}

数组的动态初始化和常见问题

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。

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

int[] arr = new int[3];

eg:定义一个数组,用来存班级中50个学生的姓名

public class ArrayDemo {
    public static void main(String[] args) {
        String[] arr = new String[50];
        arr[0] = "zhangsan";
        arr[1] = "lisi";
        System.out.println(arr[0]);//zhangsan
        System.out.println(arr[1]);//lisi
        System.out.println(arr[2]);//打印出来的是默认初始化值null

        int[] arr1 = new int[3];
        System.out.println(arr1[0]);//0
        System.out.println(arr1[1]);//0
        System.out.println(arr1[2]);//0
    }
}

数组默认初始化值的规律:

整数类型:默认初始化值 0

小数类型:默认初始化值 0.0

字符类型:默认初始化值 '/u0000' 空格

布尔类型:默认初始化值 false

引用数据类型: 默认初始化类型 null

  • 数组动态初始化和静态初始化的区别

动态初始化:手动指定数组长度,由系统给出默认初始化值

静态初始化: 手动指定数组长度,系统会根据元素个数,计算数组的长度。

  • 数组中常见问题

索引越界异常

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值