首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java数组那些事

1、数组的定义

Java中为什么要有数组呢?

问大家一个问题:一个班里有50名同学,如何在程序中输出所有同学的学号?

如果没有数组,定义50个int 分别输出吗?要是100多人呢?1000人呢?定义起来你会崩溃的?

数组: 一组能够存储相同数据类型值的变量的集合。

当我们有一组相同类型的数据需要存储,如果此时使用单个变量来存储,我们将要定义若干个变量名,这样将会

非常繁琐,并不利于维护。

2、数组的赋值

为了给大家加深印象,我决定给大家画张图来理解一下:

四种:

使用默认的初始值来初始化数组中的每一个元素

语法:数组元素类型 [] 数组名 = new 数组元素类型[数组中元素的个数(数组的长度)];

如:

int [] scores = new int[3]; /*数组赋值 nums[0]=1; nums[1]=2; nums[2]=3; nums[3]=4; nums[4]=5; */ for(int i=0;i

先声明,然后再赋予默认的初始值。

语法:数组元素类型 [] 数组名;

数组名= new 数组元素类型[数组中元素的个数(数组的长度)];

如:

int [] scores; scores = new int[3];//这种呢就相当于第一种分开写了

先声明,然后再使用指定的值进行初始化。

语法:数组元素类型 [] 数组名 = new 数组元素类型[]{元素1,元素2,….};

如:

int [] scores = new int[]{56,78,98};//赋值和声明写一起了,

将第三种写法可以简化为(使用数组常量值给数组进行赋值)

语法:数组元素类型 [] 数组名 = {元素1,元素2,….};

如:

int [] scores = {56,78,98};//第三种的简写这个用的最多

所有的数组一定要有长度,所以所有的数组都有长度这个属性

System.out.println(scores.length);//scores.length .可以理解为的 scores的长度3、数组的遍历

求数组的长度:

x.length

通过下标来访问数组中的元素。

下标:从0开始,到数组长度-1

如:int[] scores = {89,90};

 访问最后一个元素值:

 int lastElement  = scores[scores.length-1];

遍历:依次取出数组中的每一个元素。

遍历方式一:普通的for循环

语法:

for(int i = 0; i< 数组的长度;i++){//i:循环变量,同样:也是数组的下标(取值范围[0,数组长度)) 数组中元素的类型 变量 = 数组名[i];}

public class Test5{ public static void main(String[] args){ //数组的遍历 int[] scores={59,75,65,89,100}; System.out.println("数组的长度:"+scores.length); //这样写的话 每次都去访问数组的长度 //for(int i=0;i

jdk1.5以后Java新增foreach循环和可变参数

遍历方式二:使用增强for循环【foreach循环】

语法:

for(数组中元素的类型 变量:数组名){ 数组中元素的类型 临时变量 = 变量; }

public class Test5{ public static void main(String[] args){ //数组的遍历 int[] scores={59,75,65,89,100}; //这种遍历方式呢有一定的限制,更强大的循环还是普通的for它可以控制下标 for(int x:scores){//1.5新增特性 System.out.println(x); } }}

和foreach一起新增的另一个特性:可变参数

public class Test5{ public static void main(String[] args){ //数组的遍历 int[] scores={59,75,65,89,100}; print(scores); //可变参数就不用包装成数组格式,直接传 print2(1,2,3,4); } public static void print(int[] x){ int len=x.length; for(int i=0;i

使用数组要注意的问题:

空指针异常(NullPointerException)

数组越界异常(ArrayIndexOutOfBoundsException )

public class Test5{ public static void main(String[] args){ //数组的遍历 int[] scores={59,75,65,89,100}; //测试空指针异常 //当一个变量为null(没有赋值)时我们调用了改变量的属性和方法, //它就死给你看,一给我嘞giao //这个异常以后编程回经常经常遇到哦 print(null); //测试数组下标越界,这个也经常遇到 print2(scores); } public static void print(int[] x){ int len=x.length; for(int i=0;i

控制台就会报错:

4、数组内存结构分析:

我们来分析一下这行代码

//new 表示创建一个数组 这得结合内存来说一下int [] scores = new int[3];

先来说一下栈内存堆内存

数组是引用类型,会存在堆内存中,

5、多维数组

Java中没有真正的多维数组

数组中的元素还是数组的话就是多维数组,

普通的开发二维可能就够了,游戏开发可能用到更高维的数组

/*一起来参加屌丝程序员大赛吧,有3个班级各3名学员参赛, 记录每个学员的成绩,并计算每个班的平均分。*/public class Test5{ public static void main(String[] args){ int[][] scores={{78,89,89},{87,96,85},{67,79,78}}; int classlen=scores.length; for(int i=0;i

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200107A0P2N800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券