本篇碎碎念:这篇没有碎碎念,嘻嘻,博主个人感觉状态回来了,博主要加油,大家也要加油
今日份励志文案:纵有疾风起,人生不言弃!
冲冲冲!!!!
目录
一.数组初始化
二.代码演示
三.数组的遍历
四.进一步了解数组
五.数组的拷贝与克隆
1.数组的拷贝
2.数组的克隆
一.数组初始化
数组只是相同类型的,用一个标识符名称封装到一起的一个对象序列或基本类型数据序列。
数组是通过方括号下标操作符 [ ] 来定义和使用的。
要定义一个数组,只需在类型名后加上一对空方括号即可:
int[] a1:
方括号也可以置于标识符后面:
int a1[];
两种格式的含义是一样的,后一种的格式符合C和C++程序员的习惯。
不过,前一种格式或许更合理,毕竟它表明类型是 一个int型数组
编译器不允许指定数组的大小,为了给数组创建相应的存储空间,必须写初始化表达式
例如:
int[] a1={1,2,3,4,5};
int[] a2;
//Java中可以将一个数组赋值给另一个数组
a2=a1;
二.代码演示
public static void main(String[] args) {
int[] a1={1,2,3,4,5};
int[] a2;
a2=a1;
System.out.println("原来数组a1的值为:");
for(int i=0;i<a1.length;i++){
System.out.print("a1["+i+"]="+a1[i]+" ");
}
for(int i=0;i<a2.length;i++){
a2[i]=a2[i]+1;
}
System.out.println();
System.out.println("改变后的数组为:") ;
for(int i=0;i<a1.length;i++){
System.out.print("a1["+i+"]="+a1[i]+" ");
}
}
看上面的代码演示:
可以看到代码中给出了a1的初始值,但是a2却没有;a2是在后面被赋给另一个数组的。
由于a2和a1是相同数组的别名,因此通过a2所做的修改在a1中可以看到
所有数组(无论它们的元素是对象还是基本类型)都有一个固有成员,可以通过它获知数组内包含了多少个元素,但不能对其修改
这个成员就是length,Java数组计数也是从第 0 个元素开始,所所以能使用的最大下标数就是length - 1 ,一旦访问下标过界,就会出现运行时错误 ( 即异常 )
三.数组的遍历
1 . for循环
2 . foreach语句(int x;array)int x 为数据类型,右边为数组名
3 . toString 操作数组的一个工具类,将数组转化为字符串进行输出
可以用 数组名.length 来知道数组的长度
public static void main2(String[] args) {
int[] array = {1,2,3,4};
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
System.out.println();
//for-each 如果将来 只是遍历程序 那么用foreach
for (int x : array) {
System.out.print(x+" ");
}
System.out.println();
String ret = Arrays.toString(array);
System.out.println(ret);
}
四.进一步了解数组
public static void func2(int[] array) {
array[0] = 99;
}
public static void func1(int[] array) {
array = new int[]{11,22,33,44,55};
}
public static void print(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
}
public static void main(String[] args) {
int[] array = {1,2,3,4};//局部变量 引用变量
print(array);
System.out.println();
func1(array);
print(array);
System.out.println();
func2(array);
print(array);
System.out.println();
}
五.数组的拷贝与克隆
1.数组的拷贝
下列代码,数组array,长度为array.length,将这个数组拷贝到copy中
int[] copy = Arrays.copyOf ( array,array.length-1 );
将原来的数组array,拷贝到新的数组copy中,array.length-1这个是拷贝的长度
array的长度为3,array.length-1的长度为2,所以拷贝0~2
打印的结果为 [1,2,3]
public static void main(String[] args) {
int[] array = {1,2,3,4};
//拷贝 array 这个数组 ,长度为 array.length
int[] copy = Arrays.copyOf(array,array.length-1);
System.out.println(Arrays.toString(copy));
}
public static void main(String[] args) {
int[] array = {1,2,3,4,5};
//拷贝 array 这个数组 ,新的长度为 array.length *2
array = Arrays.copyOf(array,array.length*2);
//array 指向了 新的数组空间
System.out.println(Arrays.toString(array));
}
上述代码增加数组的长度
打印结果如下:
2.数组的克隆
array.clone()
public static void main(String[] args) {
int[] array = {1,2,3,4,5};
int[] copy = array.clone();
//int[] copy = array; 不是拷贝
System.out.println(Arrays.toString(copy));
}
注意:克隆不能控制长度,拷贝可以控制长度
如果有解释的不对或者不清晰,如果可以从评论区指出,我一定会加以修改,万分感谢
希望对你们有所帮助