java学习

数组的定义与初始化:

数组(array)是一种容器,可以用来存储多个同数据类型的值,存储数组中的数据被称为元素,元素可以通过数组的下标进行修改。数组的下标从0开始。

数组的定义格式分为动态初始化和静态初始化两种:

动态初始化:

数据类型[] 变量名 = new 数据类型[数组长度]

int[] arr = new arr[10];

静态初始化:

数据类型[] 变量名 = new 数据类型[]{数据已1, 数据2, ...};

数据类型[] 变量名 = {数据已1, 数据2, ...};

int[] arr = new arr[]{1, 2, 3};
int[] arr = {1, 2, 3};

数组的作用:

在同类型的数据并不多的时候可以给每个数据进行单独定义,但如果数据量超过十个的时候再给每个数据单独定义,这是就会显得代码非常冗余,可读性会变得很差,这时数组就等能体现出它的优势,把数据类型相同的数据放在一个数组里。

数组的缺点:

数组不管是静态初始化还是动态初始化,一旦确定数组的长度,数组的长度就不可更改,这时候如果再向数组中添加元素,就会出现异常。

例如:

public class Test01 {
    public static void main(String[] args) {
        int[] arr = new int[5];
        for (int i = 0; i <= 5; i++) {
            arr[i] = i;
        }
        System.out.println(arr);
    }
}

出现的异常为:

这时就要进行数组扩容,而数组扩容的原理就是把元素组的元素进行拷贝,然后存入一个新的较大的数组中。在进行数组扩容是可以直接把数组的元素一个一个放入新的数组中。

public class Test01 {
    public static void main(String[] args) {
        int[] arr = new int[5];
        for (int i = 0; i < 5; i++) {
            arr[i] = i;
        }
        int[] arr1 = new int[10];
        for (int i = 0; i < 5; i++) {
            arr1[i] = arr[i];
        }
    }
}

这样方法过于麻烦,所以可以选择使用java的util包的Arrays类的copyOf(原数组名,新数组长度)方法来进行复制。

import java.util.Arrays;

public class Test01 {
    public static void main(String[] args) {
        int[] arr1 = new int[5];
        for (int i = 0; i < 5; i++) {
            arr1[i] = i;
        }
        int[] arr2 = new int[10];
        arr2 = Arrays.copyOf(arr1,args.length);
    }
}

虽然可以通过调用方法来进行数组的拷贝来实现数组的扩容,并且如果是使用arraylist还可以实现自动扩容,但对数组进行扩容会降低代码的执行效率,所以不建议对数组进行多次扩容。同时也不建议初始化一个太大的数组,这不仅是内存的浪费,而且因为数组这种数据结构的特性,可能也无法在内存中找到一块很大且连续的内存空间,所以建议在初始化数组长度的时候尽量估计出这个数组需要存储多少元素。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值