java学习第三周
数组的一些知识
1、 初始化:
a. int a[]=new int [1];
b.int a[]={1};
c.int a[]=new int[]{1};
用a这种初始化,后面new int框中的数字可以是参数。
例如:
int a[]={1,2,3,4,5};
int b[]=new int[]{5,6,7,8,9};
int c[]=new int[a.length+b.length];//定义数组c的长度为a和b长度之和
System.out.println(c.length);
输出:10
int x=10;
int y=20;
int c[]=new int[x+y];
System.out.println(c.length);//与上面情况相同
输出:30
前面的int是定义数组的类型。b,c都为数组a输入了一个为1的值。(我认为需要注意的是不要忘记左边的括号了,当然把数组名写括号后面也是可以的,例int []a=new int[1];
)
如果定义和输入的类型不同,也是会报错的。
比如:
char str[]={'h','e','l','l','o'};
char str[]="hello";//这是String数组类型,用char就报错
float str[][]={{0.3},{0.1}};//这里用float输入的是小数的话会报错,double转换成float会有损失。
double str[]={0.3};//这个就不会报错。
而且一维二维对于数组名也有不同的输出。
char str[]={'h','e','l','l','o'};
System.out.println(str);//char类型的就可以直接输出
//输出结果为:hello
//如果用str[0],str[1]...就是输出h,e,l..
int str[]={3,4};
System.out.println(str);
输出结果为:
String str[]=new String[]{"hello"};
System.out.println(str);
输出结果为:
//如果把上面的输出语句改为
System.out.println(str[0]);
//输出就是hello
二维如下:
char arr[][]={{'a'},{'b'}};
int str[][]={{1,2},{3,4}};
System.out.println(arr);
System.out.println(str);//直接输出数组名
System.out.println(arr[0]);
System.out.println(str[0]);
输出结果为:
2、数组输出的数据是从下标为0开始的。
int a[]={1,2,3,4,5};
int i=0;
for(i=0;i<a.length;i++){ //下标从0开始,然后循环输出a[0],a[1]....
System.out.print(a[i]+" ");
}
输出为:1 2 3 4 5
int a[]={1,2,3,4,5};
int i=0;
for(i=2;i<a.length;i++){ //这里的区别就是i的不同。
System.out.print(a[i]+" ");
}
输出为:3 4 5
还有一种增强for循环也可以直接输出整个数组(二维数组也是可以的,但是只能输出一行)
int a[]={1,2,3,4,5};
for(int i:a){ //具体怎么实现的我还没搞明白,但是这里就会输出a数组内的元素,而且类型由i前面的数据类型决定。)
System.out.print(i+" ");
}
输出为:1 2 3 4 5
int a[][]={{1,2,3,4,5},{6,7,8,9,10}};
for(int i:a[0])//这是二维数组也可以实现,不过输出的根据a[0],a[1]决定。
System.out.print(i+" ");
输出为:1 2 3 4 5
3、Arrays.toString也能输出数组数据。(需要用到Arrays导包)
import java.util.Arrays;
public class CeShi{
public static void main(String[] args){
int y[][]={{1,2,3},{2,3,4}};//定义二维数组
System.out.println(Arrays.toString(y[1]));//用Arrays.toString输出第二行
}
}
输出结果为:[2, 3, 4]