java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java创建数组、赋值方式

Java创建数组、赋值的四种方式详解(声明+创建+初始化 )

作者:寻求出路的程序媛

数组是一种数据结构,用来存储同一类型值的集合一旦创建了数组,就不能再改变它的长度,下面这篇文章主要给大家介绍了关于Java创建数组、赋值的四种方式(声明+创建+初始化 )的相关资料,需要的朋友可以参考下

一、创建数组的四种方式

以int数据类型为例

@Test
public void testNewArray() {
    //创建数组

    //法一
    int[] arr1 = new int[]{1,2,3,4,5};
    System.out.println(arr1.length + "   " + arr1[2]);   //5   3
    //Arrays.toString(Object[])  将数组的元素生成字符串,数组的各个元素使用方括号括着 [ ]
    System.out.println(Arrays.toString(arr1));   //[1, 2, 3, 4, 5]

    //法二 声明、分配空间并赋值
    int[] arr2 = {1,2,3,4};
    System.out.println(arr2.length + "   " + arr2[2]);   //4   3

    //法三 声明数组时指定元素个数,然后赋值。此时所有的元素值均为0
    int[] arr3 = new int[4];
    System.out.println(arr3.length + "   " + arr3[3]);  //4   0

    //法四 声明数组名、开辟空间、赋值
    int[] arr4;
    arr4 = new int[]{0,1,2,3};
    System.out.println(arr4.length + "   " + arr4[2]);   //4   2

    //创建多维数组
    int[][] doubleArr1 = {{1,2,3},{4,5,6},{7,8,9}};
    int m = 3, n = 4, q = 5;
    int[][] doubleArr2 = new int[m][n];  //其中n可以省略
    int[][][] tArr = new int[m][n][q];   //其中n、q可以省略
}

注意:

二、详解

1、一维数组的声明方式:

type[] arrayName; 或 type arrayName[];

推荐使用第一种格式,因为第一种格式具有更好的可读性,表示type[]是一种引用类型(数组)而不是type类型。建议不要使用第二种方式

int[] intArr;

注:Java语言中声明数组时不能指定其长度(数组中元素的个数),这是因为数组是一种引用类型的变量,因此使用它定义一个变量时,仅仅表示定义了一个引用变量(也就是定一个了一个指针),这个引用变量还未指向任何有效的内存,所以定义数组时不能指定数组的长度。而且由于定义数组仅仅只是定一个引用变量,并未指向任何有效的内存空间,所以还没有内存空间来存储数组元素,因此这个数组也不能使用,只有在数组进行初始化后才可以使用。

2、一维数组的创建

Java中使用关键字new创建数组对象,格式为:数组名 = new 数组元素的类型 [数组元素的个数]

// 创建数组,如果在创建的同时不初始化数组则必须指定其大小
intArr = new int[5];
// 创建数组时,不指定数组大小则必须在创建的同时初始化数组
intArray1 = new int[]{0,1,2};

3、一维数组的初始化

数组的初始化分为静态初始化、动态初始化和默认初始化:

//a、数组静态初始化的语法格式:
arrayName = new type[]{element1,element2,element3...};
// 或者使用简化的语法格式:
arrayName = {element1,element2,element3...}

//b、数组动态初始化的语法格式:
arrayName = new type[length];

附:静态初始化时不能指定元素个数,而动态初始化时则必须指定元素个数。静态初始化时数组能够知道元素的个数所以不需要指定,而动态初始化时数组元素个数未知 因此必须指定。

// 静态初始化
int intArray2 [] = new int []{20,21,22};
// 静态初始化简化方式
int intArray3 [] = {30,31,32};

// 动态初始化
int [] intArray4 = new int [3];           
// 错误写法:静态初始化不能指定元素个数
// int intErrorArray5[] = new int[3]{50,51,52};
// 错误写法:动态初始化必须指定元素个数
// int intErrorArray6[] = new int[];

注:一维数组这一块记住两点,数组声明的时候是不能指定大小的,也就是说等号左边的中括号中不能包含数字。另外一旦使用new关键字那么肯定在内存中为数组分配了空间,则必然数组有默认值。数组是对象数据类型

注:不要静态初始化和动态初始化同时使用,也就是说不要再进行数组初始化时,既指定数组长度,也为每个数组元素分配初始值。

4、数组进行动态初始化时系统分配初始值的规则

详情见:https://www.jb51.net/program/319567ebl.htm

三、数组存储的弊端

为解决以上问题、灵活运用,提出Java容器的概念

参考:https://www.jb51.net/article/93955.htm

总结

到此这篇关于Java创建数组、赋值的四种方式(声明+创建+初始化 )的文章就介绍到这了,更多相关Java创建数组、赋值方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文