javaSE - Arrays - 数组的定义与使用

一、数组基本用法

1.1、什么是数组

数组本质上就是让我们能 “批量” 创建相同类型的变量
也可以说是存储一组相同数据类型的数据的集合

如:
如果需要表示两个数据, 那么直接创建两个变量即可 int a; int b
如果需要表示五个数据, 那么可以创建五个变量 int a1; int a2; int a3; int a4; int a5;
但是如果需要表示一万个数据, 那么就不能创建一万个变量了. 这时候就需要使用数组, 帮我们批量创建

注意事项: 在 Java 中, 数组中包含的变量必须是 相同类型

1.2、创建数组

基本语法
创建数组的三种方式:

// 动态初始化
数据类型[] 数组名称 = new 数据类型 [] {
    初始化数据 };
// 静态初始化
数据类型[] 数组名称 = {
    初始化数据 };

类型[] 数组名 = new 类型[元素个数];

代码示例:

public static void main(String[] args) {
   
        //动态初始化,数组里面存放了 1 2 3 4 
        int[] array2 = new int[]{
   1, 2, 3, 4};
        //静态初始化,数组里面存放了 1 2 3 4
        int[] array1 = {
   1, 2, 3, 4};
        //这里只是没有初始化数组的内容,默认里面存放的是5个0
        int[] array3 = new int[5];
    }

在这里插入图片描述
而且对数组有一定了解的人,都知道数组的每个元素都有一个下标(从0开始),方便去寻找寻找元素.
在这里插入图片描述

1.3、总结

一套讲解下来,你会发现在Java中 是这么来表达一个数组:int[] array
其实数组也可以写成
int arr[] = {1, 2, 3};
和 C 语言一样. 但是我们还是更推荐写成 int[] arr 的形式. int和 [] 是一个整体.,因此,其实在Java中数组的写法更为准确。

但是不能像C语言一样这样写 int array[10] = {0};
我们前面也看到了,在创建一个数组时,[ ]里是不能有具体数字的存在,除了第三种方法,其它的,一律不行

1.4、数组的使用

1.4.1、代码示例: 获取长度 , 访问元素

public static void main(String[] args) {
   
        int[] array = new int[]{
   1,2,3,4,5,6};
        //计算数组的长度
        int len = array.length;
        System.out.println("数组的长度为:" + len);
        //访问数组的元素
        System.out.println(array[1]);
        System.out.println(array[2]);
        System.out.println(array[3]);

    }

在这里插入图片描述

1.4.2、代码示例: 下标越界

public static void main(String[] args) {
   
        int[] array = new int[]{
   1,2,3,4,5,6};
        System.out.println(array[-1]);
    }

在这里插入图片描述
抛出了 java.lang.ArrayIndexOutOfBoundsException 异常. 使用数组一定要下标谨防越界.

1.4.3、码示例: 遍历数组

所谓 “遍历” 是指将数组中的所有元素都访问一遍, 不重不漏. 通常需要搭配循环语句

public static void main(String[] args) {
   
        int[] array = new int[]{
   1,2,3,4,5,6};
        for(int i = 0; i < array.length; i++){
   
            System.out.print(array[i] + " ");
        }
    }

在这里插入图片描述

1.1.4、代码示例: 使用 for-each 遍历数组

public static void main(String[] args) {
   
        int[] array = {
   1, 2, 3, 4, 5};
        for(定义一个 与数组元素类型 相同的变量 : 数组名)
 
  什么意思呢?
for-each(增强for循环), 数组名部分,表示的意思 遍历访问数组的元素
将访问的元素赋给 冒号前面 定义的 与数组元素类型相同 的变量
 我们只需要 将该变量每次得到的元素值,打印
  就能做到不依靠元素下标,遍历打印数组所有元素

        for (int x: array) {
   
            System.out.print(x + " ");
        }
    }

在这里插入图片描述

那么 for 和 foreach 两者有什么区别?
最大的区别在于,for是可以拿到元素下标,而foreach拿不到元素下标
for循环用到的地方很多,但是foreach呢?
当我们只需要元素的值时,就是使用foreach,
当我们还需要元素的下标时,就用for。
for-each 是 for 循环的另外一种使用方式. 能够更方便的完成对数组的遍历. 可以避免循环条件和更新语句写错

注意事项

  1. 使用 arr.length 能够获取到数组的长度. . 这个操作为成员访问操作符. 后面在面向对象中会经常用到.
  2. 使用 [ ] 按下标取数组元素. 需要注意, 下标从 0 开始计数
  3. 使用 [ ] 操作既能读取数据, 也能修改数据.
  4. 下标访问操作不能超出有效范围 [0, length - 1] , 如果超出有效范围, 会出现下标越界异常

代码实例3(借助Java的操作数组的工具类 Arrays)

public static void main(String[] args) {
   
        int[] array = {
   1, 2, 3, 4, 5, 6};
        String str = Arrays.toString(array);
        System.out.println(str);
    }

在这里插入图片描述
Arrays工具类还有很多的方法:Arrays工具类的常用方法

二、数组作为方法的参数

首先要说一下 jvm内存模型

public static void main(String[] args) {
   
        int[] array = {
   1, 2, 3, 4, 5, 6};
        String str = Arrays.toString(array);
        System.out.println(str);
    }

在这里插入图片描述

public static void main(String[] args) {
   
        int[] array = null;
        System.out.println(array.length);
    }

在这里插入图片描述

2.1、基本用法

2.1.1、代码示例: 打印数组内容

/**
     * 打印数组的内容
     * @param array 数组名
     */
    public static void printf(int[] array){
   
        for (int i = 0; i < array.length; i++) {
   
            System.</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Später321

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值