从零开始的java_day1.数组问题

1.声明数组:

有两种方式,一是[]在数组名后,如float boy[];二是[]在数组名前,如int [] a。

特别的是[]在前的方式,一次声明多个一维数组时,如:int [] a,b;一次声明多个二维数组时,如:

int [] a,b[]。其中a是一维数组,b是二维数组。我认为括号在前是各数组共享的第一个括号。

还有就是声明数组时的[]中不允许指定数组元素个数,int a[2]语法错误。

2.创建数组:

数组名 = new 数组元素的类型[数组元素的个数];

如 boy = new float[4];

也可以声明和创建同时完成

如 int boy = new float[4];

二维数组 int a[][]=new int [3][4]; 指的是有3个长度为4的一维数组。

length的使用:

“数组名.length”表示一维数组的元素个数或二维数组中一维数组的个数。

如:int a[] =new int[12]; a.length的值为12

注意:int b[][]= new int [3][6]; b.length的值为3

3.数组的初始化:

与c没什么不同。

4.数组的引用:

指的应该就是数组首元素的地址。

5.实例: 

public class Example2_4
{
	public static void main(String args[])
	{
		int a[] = {1,2,3,4};
		int b[] = {100,200,300};
		System.out.println("数组a的元素个数="+a.length);
		System.out.println("数组b的元素个数="+b.length);
		System.out.println("数组a的引用="+a);
		System.out.println("数组b的引用="+b);
		a=b;
		System.out.println("数组a的元素个数="+a.length);
		System.out.println("数组b的元素个数="+b.length);
		System.out.println(a[0]+a[1]+a[2]);
		System.out.println(b[0]+b[1]+b[2]);
		System.out.println(""+b[0]+""+b[1]+""+b[2]);
		//System.out.println(b[]);
	}
}

运行结果: 

对于int型数组,System.out.println(a);输出结果就是首元素地址。

System.out.println(""+b[0]+""+b[1]+""+b[2]);这样输出结果是数组对应序号的元素值;

但是System.out.println(b[0]+b[1]+b[2]);输出的结果居然是b[0] b[1] b[2]三者之和。

我想试试有没有其他方法输出各元素的值,然后

System.out.println(b[0],b[1],b[2]);不行

System.out.println("%d%d%d",b[0],b[1],b[2]);也不行

System.out.println(b);输出的还是引用。

结果还是没找到别的方法,等有了再改。


明白了,改变输出格式也行,如:System.out.printf("%d,%d,%d",b[0],b[1],b[2]);

之前System.out.println("%d%d%d",b[0],b[1],b[2])是println的问题,要把println改成printf才可以用c语言的输出。

要么单个输出或循环,System.out.println(b[0]);System.out.println(b[1]);System.out.println(b[2])

要注意println和printf的区别,以后学多了再总结。


但是对于char数组,

char c[] = {'你','好'};
		System.out.println(c);
		System.out.println(c.length);
		System.out.println(""+c);

结果是 :

你好

2

[C@53d8d10a

我:???

输出各元素和int数组一样格式的System.out.println(""+c[0]+""c[1]);居然又不行了,反而是和c语言一样了。

书上说的是:如果想输出char数组的引用,必须让数组c和字符串做并置运算,

如:System.out.println(""+c); 

我想合着char数组并置是引用,int数组并置是输出各元素咯。然而我试了一下,特么int数组只并置数组名也是引用,我是真的服了,为什么不都写出来啊。

6.总结:

输出int数组各元素值:System.out.println(""+b[0]+""+b[1]+""+b[2])

输出int数组引用:System.out.println(b)或System.out.println(""+b)

输出char数组各元素值:System.out.println(c)

输出char数组引用:System.out.println(""+c)

//更新

用for输出int数组各元素值:for(int i : b)System.out.println(i);//i是循环变量,b是需要循环的数组,i和b同类型.

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

用for输出char数组各元素值:for(char a:c)System.out.println(c);

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值