转载自lavender_li
一、什么是数组
数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据, 比如可以定义 int 型的数组 scores 存储 4 名学生的成绩:
int[] scores={76,83,92,87};
其中,数组的名称为scores,每一个值都有一个索引,从0开始,可以通过 scores[0] 获取数组中的第一个元素 76。
二、数组的使用
Java 中操作数组只需要四个步骤:
1. 声明数组
语法:数组类型[] 数组名;或者 数组类型 数组名[];
如:int[] scores;//存储学生成绩的数组,类型为整型;
string name[];//存储学生姓名的数组,类型为字符串;
2. 分配空间
简单地说,就是指定数组中最多可存储多少个元素。
语法:数组名=new 数组类型[数组长度];
如:scores=new int[5];//长度为5的整数数组;
或者将步骤1,2合并:int scores[]=new int[5];必须注意:此处数值长度5必须指定。
其中,scores的类型时数组类型,框里面的元素的类型才是int类型。
3. 赋值
分配空间后就可以向数组中放数据了,数组中元素都是通过下标来访问的, 例如向 scores 数组中存放学生成绩:
scores[0]=89; scores[1]=79;
4. 处理数组中的数据
在 Java 中还提供了另外一种直接创建数组的方式,它将声明数组、分配空间和赋值合并完成,如
int [] scores={78,97,88,78}; 等价于:int[] scores=new int[]{78,97,88,78};必须注意此处数值长度必须为空 .
注意: 1、 数组下标从 0 开始。因此 scores[3] ,表示数组中的第 4 个元素,而并非第 3 个元素
2、 数组下标的范围是 0 至 数组长度-1 ,如果越界访问,就会报错
3、 数组名.length :用于获取数组的长度
三、使用 Arrays 类操作 Java 中的数组
Arrays 中常用的方法:
1.升序排序
语法: Arrays.sort(数组名);
2.将数组转换为字符串
语法: Arrays.toString(数组名);
可以使用 toString( ) 方法将一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起, 多个元素之间使用逗号和空格隔开,
例子:
运行结果为: 输出数组nums中的元素:[25,7,126,53,14,86]
四、使用 foreach 操作数组
foreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组、集合时, foreach 更简单便捷。从英文字面意思理解 foreach 也就是“ for 每一个”的意思。
语法:for(元素类型 元素变量:遍历对象){
执行的代码;}
五、Java 中的二维数组
1、 声明数组并分配空间
语法:数组类型[][] 数组名=new 数组类型[行个数][列个数];
如:int[][] num=new int[2][3];//定义一个两行三列的二维数组
2、 赋值 二维数组的赋值,和一维数组类似,可以通过下标来逐个赋值,注意索引从 0 开始。
语法:数组名[行的索引][列的索引]=值;
或者在声明数组的同时为其赋值 数组类型[][]数组名={{值1,值2...},{值11,值22}};
3、 处理数组 二维数组的访问和输出同一维数组一样,只是多了一个下标而已。在循环输出时, 需要里面再内嵌一个循环,即使用二重循环来输出二维数组中的每一个元素。如:
运行结果:123
456
---------------------------------------
局部变量:定义在方法中、for循环等的变量叫做局部变量
栈内存(栈区):数据(局部变量)使用完毕,会自动释放
堆内存(堆区):使用new进行定义的变量,才会在堆中开辟新空间,否则在栈中开辟 。堆中的每个数据都有地址