数组初始化数组new关键字可变参数列表公众号**一盐难放** :
数组
数组是用标识符名称封装的相同类型的对象序列或基本类型的数据序列。 数组的定义用方括号[]完成,只需在类型名称后添加方括号即可。
int [] a; 这样,如果有数组的引用,但尚未分配空间,编译器无法指定数组的大小,则必须使用初始化表达式为数组分配存储空间。 此初始化操作通过括号堆实现,如下所示。
publicstaticvoidmain (字符串) args ) /可以用大括号初始化的int ) ) a={ 1,2,3 }; //将一个数组的值转换为另一个数组int[] a1=a; //序列遍历for(intI=0; i a1.length; I ) { System.out.println ('下标为:' i ',数值为(a1 ) I ) ); }打印结果:
下标为:0,数值为1
下标为:1,数值为: 2
下标为:2,数值为: 3
因为Java数组的计数从0元素开始,所以可以使用的最大下标数为length - 1,如果超过了边界数,则会发生运行时异常。
如果不知道new关键字数组包含多少元素,可以使用new关键字直接在数组中创建元素,然后使用Random.nextInt )方法随机指定大小,如下所示:
publicstaticvoidmain (字符串[ ] args )//基本类型的数组int ) ) b=new int (new random ).nextint(20 ) ); //数组长度System.out.println (基本数组b的长度为' b.length ); for(intI=0; I b .长度; I ) system.out.println(b[I]; //目标数组integer [ ] c=new integer [ new random ().nextint(20 ) ]; //数组长度System.out.println (对象数组c的长度为(c.length ); for(intI=0; i c.length; I ) system.out.println(c[I]; }打印结果:
基本类型数组b的长度为2
0
0
对象数组c的长度为3
空值
空值
空值
允许基本类型数组的元素有基本数据类型的初始值。 例如,int类型的初始值为0。 但是,非基本类型数组的元素的初始值为null。 在这种情况下,还需要对数组元素执行赋值操作。
for(intI=0; i c.length; I ) (/将c(I )=newrandom ).nextint(20 )赋值给非基本类型的数组元素)如果尝试使用数组中的空引用,运行时将引发异常。 也可以通过组合大括号来初始化对象数组。
//用大括号表示对象数组integer [ ] d=new integer [ ] { 1,2,3 }; 调用具有可变参数列表参数的方法时,每个参数通常只能有一个,但也可以有多个。 在这种情况下,有以下两种写法。
公共语音(字符串(args )测试(newstring ) )、(2); test2('1)、'2); test2(newstring[]{'1','2'}; }/** *书写时,数组* @ paramstr */publicstaticvoidtest (string [ ] str ) for(strings3360str ) system.out.printlint 数组语法* @ paramstr */publicstaticvoidtest2(string . str ) for(strings3360str ) system.out ) }第一种写法是用数组作为参数不需要显式编写数组。
此外,可变参数列表与自动包装机制兼容。
publicstaticvoidmain (字符串[ ] args ) ) test3(1、2、3 ); } /** *可变参数的列表。 类型在调用integer * @ param nums */publicstaticvoidtest3(integer . nums ) for ) integerI:nums ) system.oor }时传递
公众号一盐难进