Java 数组怎么定义

刚接触Java的新手,常会在写代码时遇到“存一堆同类型数据”的需求,比如要记录全班50个同学的考试成绩,总不能一个个单独定义变量吧?这时候数组就能派上用场。很多人刚学的时候,总搞不清数组到底怎么“做出来”,其实它的定义就像给数据找“固定格式的储物柜”,步骤很简单。

先搞懂数组的核心逻辑

数组本质是同类型数据的有序集合,可以理解成一排编号从0开始的“储物柜”,每个柜子里只能放同一类型的东西——比如全是整数的成绩、全是字符串的姓名。它的“固定格式”体现在两个地方:一是所有元素类型统一,二是长度固定(定了多少个柜子就不能变)。比如要存3个苹果,定义数组就是开3个“苹果柜”,不能混放香蕉。

Java 数组怎么定义

两种常用的数组定义方式(新手一看就会)

Java里定义数组有两种最常用的写法,都是从“声明类型”开始,再给数组分配空间,最后填数据,新手不用纠结复杂写法,先把这两种练熟就行。

先声明类型,再分配长度(适合还没确定内容的情况)

这种方式是先告诉编译器“我要做一个什么类型的数组,要放多少个元素”,之后再往里面填数据。就像先订好3个苹果柜,之后再一个个放苹果。

举个例子:要存5个整数的成绩,步骤是先声明数组,再分配长度:

`java

// 声明:int是类型,scores是数组名,[]说明这是数组

int[] scores;

// 分配长度:new int[5]就是开5个空的整数柜子,索引从0到4

scores = new int[5];

`

这里要注意两个细节:一是数组名后必须加[],写成int scores[]也可以,但业内更推荐int[] scores,一眼就能看出是数组;二是长度要写正整数,不能是负数,不然会报错。

如果要直接给初始值,也可以在分配长度时一起写,这时候不用单独赋值,编译器会自动按顺序填:int[] scores = new int[5]; 之后可以通过“数组名[索引]”赋值,比如scores[0] = 90; 就是给第1个柜子放90分,scores[1] = 85; 以此类推。

直接声明+赋值(适合内容确定的情况)

如果一开始就知道要存的所有数据,不用单独分配长度,编译器会自动数有多少个元素,给对应的长度。就像你要存“苹果、香蕉、橘子”3种水果,直接说要这3个,不用提前说开3个柜子。

举个例子:存3个同学的姓名,直接写:

`java

// 声明的同时,把所有姓名按顺序放在大括号里

String[] names = {"张三", "李四", "王五"};

`

这种写法的好处是简单,适合数据固定的场景,缺点是不能之后再改长度,要是少写一个元素,数组长度就会少1,新手很容易在这里踩坑——比如你写了3个名字,后来想加第4个,不能直接在大括号里加,得重新定义新的数组。

新手最容易犯的3个小错误

刚学数组很容易出错,记住这几点就不会踩坑:

一是别忘写类型,直接写scores = new int[5](没加int[])会报错,编译器不知道你要存什么类型;

二是索引从0开始,要是写scores[5](长度是5,索引到4),就会出现“数组越界”的错误,就像你拿了第6个柜子,根本不存在;

三是类型不统一,比如String[] names = {1, "李四"},整数和字符串混放,编译器会报错,因为数组要求所有元素类型一致。

数组虽然简单,但却是Java里最基础的工具,学好定义,后面用它存数据、遍历计算都能顺很多。

上一篇 Swift编程语言的核心特性与实际开发场景的知识科普讲解