首页 > 编程知识 正文

Java中数组赋值的三种方式,java中下列有关数组的声明中

时间:2023-05-04 08:33:24 阅读:128693 作者:3933

在Java中定义数组的语法有两种。

类型阵列名称[ ];

类型[ ] array name;

type是Java中的任何数据类型,包括基本类型和联接类型。 阵列名称必须是数组名称,并且必须是有效的标识符。 [ ]表示变量是数组类型变量。 例如:

int demoArray[]; int[] demoArray; 这两种形式没有区别,使用效果完全相同,读者可以根据自己的编程习惯进行选择。

与c和c不同,Java在定义数组时不会为数组元素分配内存,因此无需在[ ]中指定数组元素的数量或数组长度。 此外,如上定义的数组无法访问该元素,因此必须分配内存空间。 在这种情况下,使用运算符new。 形式如下。

arrayName=new type[arraySize];

其中arraySize是数组的长度,type是数组的类型。 例如:

demoArray=new int[3]; 为整数数组分配三个int型整数所占的内存空间。

通常,可以在定义的同时分配空间。 语法如下。

类型阵列名称[ ]=new type [阵列大小];

例如:

int demoArray[]=new int[3]; 数组初始化可以在声明数组的同时进行初始化(静态初始化),也可以在声明后进行初始化(动态初始化)。 例如:

//静态初始化//在静态初始化的同时为数组元素分配空间int intarray [ ]={ 1,2,3,4 }; String stringArray[]={ '微学',' http://www.weixueyuan.net ','所有编程语言都是纸老虎' }; //floatfloatarray [ ]=newfloat [3]; 浮动阵列[0]=1.0f; 浮动阵列[1]=132.63 f; floatArray[2]=100F; 数组引用可以用下标引用数组。

阵列名称[索引];

与c、c不同,Java必须对序列因素进行越界检查以确保安全性。

每个数组都有一个length属性,指示长度。 例如,intArray.length显示数组的intArray长度。

【例】输入任意5个整数,写输出它们之和的代码。

import java.util.*; public class demo { publicstaticvoidmain [字符串[ ] args ] { int interray [ ]=new int [5]; 长总=0; int len=intArray.length; //将System.out.print (代入数组元素(请输入' len '个整数,用'空格分隔:'); sannersc=newscanner(system.in; for(intI=0; ilen; I({intarray[I]=sc.nextint ); //计算数组元素之和for (inti=0; ilen; I({total=Intarray[I]; } System.out.println ('所有数组元素之和为' total ); }运行结果:

请输入5个整数,用空格分隔。 10 20 15 25 50

所有数组元素的和为120

遍历数组在实际开发中,经常需要遍历数组才能获取数组中的所有元素。 最容易考虑的方法是for循环。 例如:

intarray demo [ ]={ 1,2,4,7,9,192,100 }; for(intI=0,len=arrayDemo.length; ilen; I ) system.out.println (阵列演示[ I ],'; }输出结果:

1、2、4、7、9、192、100、

但是,Java提供了用于遍历数组的“扩展”for循环,语法如下:

阵列类型(arraytypevarname :阵列名称) {//some code }阵列类型是数组类型(也是数组元素的类型); varName是保存当前元素的变量,每次循环时值都会发生变化; arrayName是数组名称。

每次循环时,都会获取数组中下一个元素的值,并将其保存在varName变量中,直到数组结束。 也就是说,第一个循环的varName值是第0个元素,第二个循环是第一个元素。示例:

intarray demo [ ]={ 1,2,4,7,9,192,100 }; for (intx :阵列演示) system.out.println ) x ','; }输出结果与上述相同。

该扩展版的for循环也称为“foreach循环”,是通常的for循环语句的特殊简化版。 的所有foreach循环都将重写为for循环。

但是,如果想使用数组的索引,则不能在扩展版的for循环中进行。

二维数组的二维数组声明、初始化和引用与一维数组类似。

int intarray [ ] [ ]={ 1,2 }、{ 2,3 }、{ 4,5 }; int a[ ][ ]=new int[2][3]; a[0][0]=12; a[0][1]=34; //…a[1][2]=93; Java语言将二维数组视为数组的数组,由于数组空间不是连续分配的,因此二维数组的每个一维的大小并不一定相同。 例如:

int intarray [ ] [ ]={ 1,2 }、{ 2,3 }、{ 3,4,5 }; int a[ ][ ]=new int[2][ ]; a[0]=new int[3]; a[1]=new int[5];

【例】根据二维数组计算两个矩阵的乘积。

public class demo { publicstaticvoidmain (字符串[ ] args )//第一个矩阵(动态初始化二维数组) inta ) )=newint(2) ) 3;//第二个矩阵(静态初始化二维数组(intb[] )={ 1,5,2,8 },{ 5,9,10,-3},{ 2,7,-5,-18}; //结果矩阵int c[][]=new int[2][4]; //初始化第一个矩阵for (inti=0; i2; I ) for(intj=0; j3; j ) a(I ) ) j )=) I1 ) * ) j2; //计算矩阵的乘积for (inti=0; i2; I ) for(intj=0; j4; j ) (c ) I ) ) j )=0; for(intk=0; k3; k ) c[i][j] =a[i][k] * b[k][j]; //输出结算结果的for(intI=0; i2; I ) for(intj=0; j4; j ) system.out.printf('%-5d ',c[i][j]; system.out.println www.ym zxrj.com (; }}运行结果:

25 65 14 -65

50 130 28 -130

几点说明:

上面的故事是静态数组。 声明静态数组后,其容量是固定的,不能更改。 因此,在声明数组时,必须考虑数组的最大容量并防止容量不足。 如果希望在运行程序时改变容量,则必须使用数组列表(ArrayList,也称为动态数组)或向量)。 由于静态数组容量固定的缺点,在实际开发中不经常使用,而是被ArrayList或Vector取代。 因为在实际开发中,需要在数组中添加或删除元素,其容量很难估计。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。