数组
声明数组
1,一组相同类型的数据
2,数组是一个对象
这个对象只有一个属性,length 数组的长度
3,声明一个数组不创建一个对象
4,数组可以用下列方法声明
int[] iArray 或者 int iArray[]
Teacher[] tArray 或者 Teacher tArray[]
4.2.创建数组
数组在创建的时候必须指定长度。
数组的长度一经确定就不能改变.
1,创建一个原始数组
int[] arr = new int[2];
2,创建一个类数组
Teacher[] teacher = new Teacher[100];
3,数组中的元素会被赋默认值.
4.3.初始化数组
给数组中的元素赋值,就是初始化数组
数组具有下标,下标从0开始,最大的下标为length-1
初始化数组的时候下标不能操作最大值,也不能为负数。
1基本数据类型的数组初始化:
int[] iArray;
iArray = new int[2];
iArray[0] = 0;
iArray[1] = 1;
或者:
int[] arr = {12,3,4,5,67,8};
或者:
int[] arr = new int[]{1,2,3,4,5,6};
2 引用数据类型数组初始化
Student sArray[] = new Student[] {
new Student(“Larry”, “Male”, 20),
new Student()
};
注意:引用数据类型的数组,其每个元素都是引用数据类型的值,也就是对象。
4.4.多维数组
数组可以存放任意数据类型的数据,那么也可以存放数组类型的数据。
如果数组存放数据类型的数据,那么这个数组就是多维数组。
声明
语法 数据类型[][] args = new 数据类型[数组的长度][];
例:int[][] args = new int[5][];
赋值:
args[0] = new int[3];
args[1] = new int[2];
args[3] = new int[2];
args[0][0] = 1;
args[0][1] = 1;
args[4][1] = 1;
args[4][2] = 2;
取值:
int age = args[0][0];
4.5.数组的拷贝
使用 System.arraycopy(…);方法完成数组的拷贝。
arraycopy方法有5个参数:
参数1,需要被复制的目标数组
参数2,从这个数组的那个一个位置开始复制
参数3,需要把数据复制到的另外的那一个新的数组对象
参数4,复制到新数组里面哪个位置(从这个位置开始算)
参数5,复制的目标数组的长度
例:
int myArray[] = { 1, 2, 3, 4, 5, 6 }; //老数组
int[] newArray = new int[myArray.length*2];
System.arraycopy(myArray,0,newArray,0,myArray.length);
这样就把老数组中的数据都复制到了新数组中,放到了新数组的0号位置。以后就使用新数组操作,代码的效果看起来是老数组的长度被加大了。
4.6.可变参数
方法声明的参数是可变参数,表示,后期调用该方法可以传一个或者多个值,但是类型需要正确。
语法: public void show(数据类型… 变量名){
}
注:如果方法的参数有可变参数,那么只能是在方法参数列表的最后。
例:
public void show(String name){
}
调用show方法:
show(“tom”);//√
show(“tom”,”lisi”)//√
show(“tom”,”lisi”,”wangwu”)//√
在show方法中使用可变参数,按照使用数组的方式使用即可。
4.7.格式化输出
System.out.printf是JDK1.5之后加入的新的方法,可以给我们格式化输出内容
常见用法例子:
// 定义一些变量,用来格式化输出。
double d = 345.678;
String s = "你好!";
int i = 1234;
// "%"表示进行格式化输出,"%"之后的内容为格式的定义。
// "f"表示格式化输出浮点数。
System.out.printf("%f", d); //345.678000
System.out.println();
// "9.2"中的9表示输出的长度,2表示小数点后的位数。 注意输出数字前面 的空格
System.out.printf("%9.2f", d);// 345.68
System.out.println();
// "+"表示输出的数带正负号。
System.out.printf("%+9.2f", d);// +345.68
System.out.println();
// "-"表示输出的数左对齐(默认为右对齐)。
System.out.printf("%-9.4f", d);//345.6780
System.out.println();
// "+-"表示输出的数带正负号且左对齐。
System.out.printf("%+-9.3f", d);//+345.678
System.out.println();
// "d"表示输出十进制整数。
System.out.printf("%d", i);//1234
System.out.println();
// "o"表示输出八进制整数。
System.out.printf("%o", i);//2322
System.out.println();
// "x"表示输出十六进制整数。
System.out.printf("%x", i);//4d2
System.out.println();
// "#x"表示输出带有十六进制标志的整数。
System.out.printf("%#x", i);//0x4d2
System.out.println();
// "s"表示输出字符串。
System.out.printf("%s", s);//你好!
System.out.println();
System.out.printf("输出浮点数:%f,一个整数:%d,字符串:%s", d, i, s);
//输出浮点数:345.678000,一个整数:1234,字符串:你好!