怎样用java定义一个int数组
发布时间:2025-05-24 14:43:04 发布人:远客网络
一、怎样用java定义一个int数组
数组:是一组相关变量的集合数组是一组相关数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组
数据的有点不使用数组定义100个整形变量:int i1;int i2;int i3
数组定义:int i[100];只是一个伪代码,只是表示含义的
一维数组可以存放上千万个数据,并且这些数据的类型是完全相同的,
使用java数组,必须经过两个步骤,声明数组和分配内存给该数组,
声明一维数组:数据类型数组名[]=null;
非配内存给数组:数组名=new数据类型[长度];
声明一维数组:数据类型 []数组名=null;
int、long操作的时候本身就是具体的内容
引用传递的就是一个内存的使用权,一块内存空间,可能有多个人同时使用
数组的声明格式里,数据类型是数组元素的数据类型,常见的有整形、浮点型、与字符型等
数组名是用来统一这组相同数据类型元素的名称,其命名规则和变量的相同
数组声明后实际上是在栈内存中保存了此数组的名称,结下了是要在堆内存中配置数组所需要的内存,齐产固定是告诉编译器,所声明的数组要存放多少个元素,而new则是命令编译器根据括号里的长度。
基本数据类型偶读有其默认值:int 0;只要是引用数据类型默认值就是null事例
数据类型数组名[]=new数据类型[个数]
声明一个元素个数为10的整形数组score,同时开辟依靠内存空间工期使用
java中,由于整形数据类型占用的空间为4个byte,而整个数组score可保存的元素有10个。所以上例中占用的内存共有4*10=40个字节
想要访问数组里的元素可以利用索引来完成,java的数组索引标号由10开始,以一个score[10]的整形数组为例,score[0]代表第一个元素
在java中取得数组的长度(也就是数组元素的长度)可以利用数组名称.length完成,
数组名称.length--返回一个int类型的数据
之前的数组,所采用的都是动态初始化,所有的内容在数组声明的时候并不具体的指定,而是以默认值的形式出现
静态初始化是指在数组声明后直接为数组指定具体的内容
如果想要直接在声明的时候给数组赋初始值,可以采用大括号完成,只要在数组的生命格式后面加上初值的赋值即可,
数据类型数组名 []={初始值0,初始值1,初始值3,....初始值n};
范例排序,在操作中排序是比较常用的从大到小
这个时候不要被i值所迷惑if(score[i]>score[j]){
这一步主要知识为了比较,实际上完成之后输出的时候是根据j的值排序的
二维数组声明的方式和以为数组的类似,内存分配也一样是用new这个关键字
数组名=new数据类型[行的个数][列的个数];
数据类型数组名[][]=new数据类型[行的个数][列的个数];
声明二维数组score同时开辟一段内存空间
整体数据score可保存的元素是4*3=12个,在java中,int数据类型所占用的空间为4个字节,因此该整形数组占用的内存共为4*12=48个字节
用到的时候才会开辟空间,不用的(红色部分)则不开辟空间多维数组一般只是用到二维数组三维数组简单了解
二、java 如何定义数组和初始化
数组可以分为一维数组,二维数组,多维数组。一维数组的定义有以下两种方式:
typearr_name[];
二维数组的定义方式如下:
typearr_name[][];
多维数组可根据维数指定相应个数的[ ]
多维数组可根据维数指定相应个数的[ ]
String[][]arr4;
2.数组的初始化:
静态初始化是指在定义的同时指定数组元素内容,示例代码如下:
String[]arr2={"tom","rose","sunny"};
String[][]arr3={{"tom","American"},{"jack","England"},{"张三","china"}};
动态初始化
动态初始化是指在定义时首先通过new关键字开辟指定大小的存储空间,然后在为数组指定内容
三、java中怎么数组初始化
1、int[] a=new int[5];//初始化为默认值,int型为0
2、int[] a=new int[]{1,2,3,4,5};//同(3)
3、int[] a=new int[5]{1,2,3,4,5};
4、//错误,如果提供了数组初始化操作,则不能定义维表达式
5、a={1,2,3,4,5};//错误数组常量只能在初始化操作中使用,如(3)
6、//错误,因为数组没有初始化,不能赋值a[1]=2;二维数组
7、int[][] a={{1,2},{2,3},{3,4}};
8、int[][] a={{1,2},{2,3},{3,4,5}};
9、//没有错,数组空间不是连续分配的,所以不要求每一维的大小相同
10、//a[0]其实就是一个数组a[1]=new int[4];