2021-08-09

JAVA中有关数组的一些知识总结
数组是JAVA语言中十分重要的一个组成部分,是能够存放多个数据的一个数据结构,想要构造一个数组需要有以下几个要素:数组存储的数据类型和数组的数据长度。
数据类型:指的是数组内部存储的元素的数据类型,数组中的元素的数据类型均保持一致。
数组长度:指的是数组内部存储的数据的元素的长度,数组中的元素长度一经定义,就不能够改变。
一、如何定义一个数组(又称数组的初始化),基本格式如下:
下图中的数据类型表示:数组中元素的数据类型
【】:表示数组
new:表示定义数组的关键字
动态初始化(在创建数组的过程中就已经确定好了数组的长度,并没有确定好数组的元素)
例如定义一个长度为3的int类型的数组
int[]number=new int[3];
动态初始化(在创建数组的过程中并没有限定数组的长度,需要通过数组元素确定
例如定义一个包括元素(1,2,3,4,5)五个元素的int类型的数组
int[]number=new int[]{1,2,3,4,5}
该数组的元素与数组的长度均已确定,称为静态初始化
动态初始化同样也可以简写为:
int[]number={1,2,3,4,5},省去其中的new int
二、数组中的元素的赋值与调用
初始化完成后,仍需要赋值后才能调用数组元素中的内容
想要调出某个数组元素
格式:數組名稱[數組編號]
例如想要使用數組number中的第一個元素
格式:number[0]
數組的索引編號是從0開始的,即第一個元素的索引編號為0
在数组中:数组名称.length代表数组长度,而数组的最大索引编号数组.length减一
数组的遍历输出,定义一个方法按顺序打印输出一个数组,代码如下:

public static void main(String[]args){
int[]number={12345}
print(number);
}
public static void print(int[]array){
int i;
for(i=0;i<array.length;i++){
System.out.println(array[i])
}

未给数组赋值时,数组元素的默认值均为0;
三、数组在JAVA虚拟机中的内存划分
在JAVA虚拟机中,内存被分为如下图的几部分:
在这里插入图片描述
而数组的元素在内存中的分布如下图所示

在这里插入图片描述
数组元素的具体数值的存储位置位于堆内存中,而栈内存中存放的则是main方法后面的内容,包括定义数组的语句,打印语句以及存放于堆内存中的数组的地址,通过调用的方法可以获得堆内存的数据
例如:arr[0]中蕴藏的就是上图arr数组中第一号元素的地址,而并非arr元素本身故而可以通过这种方法寻到具体的值。

在这里插入图片描述
数组中的一些常用操作
一、数组的代码越界
只能从0到数组长度减一,例如
int[]arrayA={1,2,2}
System.out,println(array[3])
此时由于超过了索引编号,所以会出现数组的索引地址异常。(只有0,1,2三个编号)
此种情况下无法实现代码的正确运行;
二、抓取数组的长度
数组的名称犹如一个空房间,而数组的具体内容存放在堆内存中,所以通过地址将相应的数据抓取到数组名称中
下面的一段代码就是抓取数组长度的具体操作

int[]num=new int[1000000]
int length=num.length;
System.out.println(length);

三、输出数组中的最大值
基本思想为:两个两个进行比较,直至找出最大的元素

public static void main(string[]args){
int[]array={1,2,3,4,5,6}\*定义数组
int max=array[0];
int i;
for(i=0;i<array.length;i++){
if(max<array[i]){
max=array[i];\*对数组中的各个元素进行比较
}
}
System.out.println(max);\*打印取得最大值
}

四、数组元素的反转
就是让数组以一种特定的顺序,就是将数组的顺序按照编号反过来输出
核心思想:就是将对称位置的数组元素交换位置
故而要将数组按对称位置分成两个部分,创建两个临时变量进行交换
这一个循环体由四个部分组成:初始化语句,条件判断,步进表达式,循环体
初始化语句:需定义两个初始值,包括min和max.其中min和max的初始值均为0
条件判断,min是否小于max
步进表达式,一个变量从前往后靠,一个从后往前靠,
即所以一个是编号最大,一个是编号最小
即一个的初始值是min=0,一个的初始值是max=arrayc.length-1
一个是从左向右靠近,一个是从右向左靠近
一个是从小到大,一个是从大到小
一个是min++,一个是max–
判断条件即为min是否大于max*/

public class Main {

public static void main(String[] args) {
int[]arrayc={1,2,3,4,5,6};
int i;
int temp;
for (int min=0,max=arrayc.length-1;min<max;min++,max--){
	temp=arrayc[min];
	arrayc[min]=arrayc[max];
	arrayc[max]=temp;

}
for (i=0;i<arrayc.length;i++){
	System.out.println(arrayc[i]);
}
}

关注公众号:布尔青年

我们能为你提供什么?
技术辅导:c++、Java、嵌入式软件/硬件
项目辅导:软件/硬件项目、大厂实训项目
就业辅导:就业全流程辅导、技术创业支持
对接企业HR:培养输送优质性人才

添加微信18824800554,加群与腾讯、阿里、小鹏汽车等大厂高级工程师交流:技术交流,比赛交流,考研交流,面试求职,还有岗位内推!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值