java中数组的定义及使⽤⽅法(推荐)
数组:是⼀组相关变量的集合
数组是⼀组相关数据的集合,⼀个数组实际上就是⼀连串的变量,数组按照使⽤可以分为⼀维数组、⼆维数组、多维数组
数据的有点
不使⽤数组定义100个整形变量:int i1;int i2;int i3
使⽤数组定义 int i[100];
数组定义:int i[100];只是⼀个伪代码,只是表⽰含义的
⼀维数组
⼀维数组可以存放上千万个数据,并且这些数据的类型是完全相同的,
使⽤java数组,必须经过两个步骤,声明数组和分配内存给该数组,
声明形式⼀
声明⼀维数组:数据类型数组名[]=null;
⾮配内存给数组:数组名=new 数据类型[长度];
声明形式⼆
声明⼀维数组:数据类型 [] 数组名=null;
java数据类型分为两⼤类
基本数据类型
int、long操作的时候本⾝就是具体的内容
引⽤数据类型:数组、类、接⼝
引⽤传递的就是⼀个内存的使⽤权,⼀块内存空间,可能有多个⼈同时使⽤
事例声明数组
package com.qn.array;
public class Test {
public static void main(String[] args) {
int score[]=null;//声明数组
score=new int[3];//开辟空间,⼤⼩为3
}
}
数组的声明格式⾥,数据类型是数组元素的数据类型,常见的有整形、浮点型、与字符型等
数组名是⽤来统⼀这组相同数据类型元素的名称,其命名规则和变量的相同
数组声明后实际上是在栈内存中保存了此数组的名称,结下了是要在堆内存中配置数组所需要的内存,齐产固定是告诉编译器,所声明的数组要存放多少个元素,⽽new 则是命令编译器根据括号⾥的长度
基本数据类型偶读有其默认值:int 0;只要是引⽤数据类型默认值就是null
事例
package com.qn.array;
public class Test {
public static void main(String[] args) {
int score[]=null;//声明数组
score=new int[3];//开辟空间,⼤⼩为3
System.out.print("score[0]="+score[0]);
System.out.print("\tscore[1]="+score[1]);
System.out.print("\tscore[2]="+score[2]);
}
}
堆栈内存的解释
数组操作中,在栈内存中保存的永远是数组的名称,只开辟了栈内的空间,数组是永远⽆法使⽤的,必须有指向的对内存才可以使⽤,要想开辟新对内存空间必须使⽤new关键字,之后就是将对内存的使⽤权交给对应的栈内存,⽽且⼀个堆内存空间可以同时被多个栈内存空间指向,⽐如⼀个⼈可以有多个名字,⼈就相当于对内存,名字就相当于栈内存
声明数组的同时分配内存空间
声明数组的同时⾮配内存
数据类型数组名[]=new 数据类型[个数]
int score[]=new int[10];
声明⼀个元素个数为10的整形数组score,同时开辟依靠内存空间⼯期使⽤
java中,由于整形数据类型占⽤的空间为4个byte,⽽整个数组score可保存的元素有10个。所以上例中占⽤的内存共有
4*10=40个字节
数组的访问
数组中元素的表⽰⽅法
想要访问数组⾥的元素可以利⽤索引来完成,java的数组索引标号由10开始,以⼀个score[10]的整形数组为例,score[0]代表第⼀个元素
⼀直向下,最后⼀个为score[9]
取得数组的长度
在java中取得数组的长度(也就是数组元素的长度)可以利⽤数组名称.length完成,
数组名称.length--返回⼀个int类型的数据
package com.qn.array;
public class Test {
public static void main(String[] args) {
int score[]=null;//声明数组
score=new int[3];//开辟空间,⼤⼩为3
System.out.println(score.length);
}
}
结果
数组的静态初始化
之前的数组,所采⽤的都是动态初始化,所有的内容在数组声明的时候并不具体的指定,⽽是以默认值的形式出现
静态初始化是指在数组声明后直接为数组指定具体的内容
如果想要直接在声明的时候给数组赋初始值,可以采⽤⼤括号完成,只要在数组的⽣命格式后⾯加上初值的赋值即可,
数据类型数组名 []={初始值0,初始值1,初始值3,....初始值n};
package com.qn.array;
public class Test {
public static void main(String[] args) {
int score[]={1,2,3,4,5,6};//使⽤静态初始化声明数组
System.out.println(score.length);
}
}
结果
6
令数组全部的值为0范例求出数组中的最⼤值和最⼩值
package com.qn.array;
public class Test {
public static void main(String[] args) {
int score[]={45,12,8,23,89,56};//使⽤静态初始化声明数组
int max=0;
int min=0;
max=min=score[0];
for (int i = 0; i < score.length; i++) {
if(score[i]>max){
max=score[i];
}
if(score[i]
min=score[i];
}
}
System.out.println("最⼤值:"+max);
System.out.println("最⼩值:"+min);
}
}
结果
范例排序,在操作中排序是⽐较常⽤的
从⼤到⼩
package com.qn.array;
public class Test {
public static void main(String[] args) {
int score[]={45,12,8,23,89,56};//使⽤静态初始化声明数组
int temp=0;
for (int i = 0; i < score.length; i++) {
for (int j = 0; j < score.length-1; j++) {
if(score[i]>score[j]){
temp=score[i];
score[i]=score[j];
score[j]=temp;
}
}
}
for (int i = 0; i < score.length; i++) {
System.out.print(score[i]+"\t");
}
}
}
结果
这个时候不要被i值所迷惑 if(score[i]>score[j]){
这⼀步主要知识为了⽐较,实际上完成之后输出的时候是根据j的值排序的
⼆维数组
如果可以把⼀维数组当做⼏何中的⼀条线图形,那么⼆维数组就相当于⼀个表格
A B
1 姓名年龄
2 齐宁 21
3 齐燕 23
4 齐威 26
⼆维数组声明的⽅式和以为数组的类似,内存分配也⼀样是⽤new这个关键字
其实声明与分配内存的格式如下
动态初始化
数据类型数组名[][];
数组名=new 数据类型[⾏的个数][列的个数];
声明并初始化数组
数据类型数组名[][]=new 数据类型[⾏的个数][列的个数];
静态初始化
⼆维数组的存储
声明⼆维数组score 同时开辟⼀段内存空间
int score[][]=new int[4][3];
整体数据score可保存的元素是4*3=12个,在java中,int数据类型所占⽤的空间为4个字节,因此该整形数组占⽤的内存共为4*12=48个字节
事例
package com.qn.array;
public class test1 {
public static void main(String[] args) {
int score[][] = new int[4][3];
score[0][1] = 30;
score[1][0] = 31;
score[2][1] = 32;
score[2][2] = 33;
score[3][1] = 34;
score[1][1] = 35;
for (int i = 0; i < score.length; i++) {
for (int j = 0; j < score[i].length; j++) {
System.out.print(score[i][j]+"\t");
}
System.out.println("");
}
}
}
结果
⼆维数组静态初始化
⽤到的时候才会开辟空间,不⽤的(红⾊部分)则不开辟空间
多维数组
⼀般只是⽤到⼆维数组
三维数组简单了解
package com.qn.array;
public class test1 {
public static void main(String[] args) {
int score[][][]={
{
{5,1},{6,7}
},
{
{9,4},{8,3}
}
};
System.out.print(score[0][0][0]+"\t");
System.out.print(score[0][0][1]+"\t");
System.out.print(score[0][0][0]+"\t");
System.out.print(score[0][0][1]+"\t");
System.out.print(score[1][0][0]+"\t");
System.out.print(score[1][0][1]+"\t");
System.out.print(score[1][1][0]+"\t");
System.out.print(score[1][1][1]+"\t");
}
}
以上这篇java中数组的定义及使⽤⽅法(推荐)就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论