数组
在java中,数组也是对象,数组中的每个元素可以是任意类型,但一个数组中只能存放类型相同的元素。
数组类型变量的声明
1.int[] a;
2.int a[];
注意:声明的数组类型变量是要指向对象的
数组对象的创建
1.数组对象的长度是指一个数组对象中可以存放多少个数据。每个数组对象在被创建的时候就要声明其长度,该长度一旦被确定就不可修改。
2.数组对象的创建格式 int[] a = new int[4];
数组对象的初始化及使用
1.数组对象也是java中的一种对象,所以存放在堆中,数组对象在堆中是一块连续的内存空间,每一小块都能保存一个我们需要保存的数据,数组的长度也就是一共有几个小块
2.数组对象的默认值
整型数组的默认值是0
浮点类型的数组的默认值是 0.0
布尔类型的数组的默认值是false
字符类型的数组的默认值是0
引用类型的数组的默认值是null
3.数组对象创建的特殊形式
int[] a = new int[]{1,3,5,7,9};
int[] a = {2,4,6,8};
int[] a; a = new int[]{1,2,3};
4.数组对象的拷贝
上文提到过数组对象的长度一经确定不可更改,但是我们可以通过复制数组的内容来实现更改数组长度。在java.lang.System中有提供复制数组中元素的方法。
该方法的声明
public static void arraycopy(
Object src,
int srcPos,
Object dest,
int destPos,
int length)
参数1,需要被复制的目标数组
参数2,从这个数组的那个一个位置开始复制
参数3,需要把数据复制到的另外的那一个新的数组对象
参数4,复制到新数组里面哪个位置(从这个位置开始算)
参数5,复制的目标数组的长度
public static void main(String[] args) {
int[] a = new int[] {4,1,2,5,2,3};
int[] b = new int[a.length+3];
System.arraycopy(a, 0, b, 1, 3);
System.out.println(Arrays.toString(b));
}
输出结果为[0, 4, 1, 2, 0, 0, 0, 0, 0]
,这也论证了整型数组的默认值是0这个知识点。
5.数组的工具类java.util.Arrays
Arrays类中有许多方法可以操作数组,但是想要使用这个类就必须导入这个类。
6.可变参数
public void test(int[] a){}
我们使用这个方法,那么就只能传入一个int[]类型的数组。
如果使用可变参数
public void test(int... a){}
那么传入的参数就多样化了,
比如
int[] a = {1,2,3,4};
t.test(a);
t.test();
t.test(1,2,3,4,5,6,7);
可变参数前面可以加其他参数,但是后面不可以加其他参数,在方法内部我们使用可变参数的时候把它当做数组处理就可以了。
public class Main {
public static void main(String[] args) {
int[] a = new int[] {4,1,2,5,2,3};
test(a);
test(1,2,3);
}
static void test(int... a) {
System.out.println(Arrays.toString(a));
}
}