初步了解数组
在最近的Java学习过程中,我开始了数组的学习。虽然在C语言中,我们也学习过数组,但是Java中的数组和C中的数组还是有一定的区别的。
在Java中,数组有两种定义的方式,动态和静态。
示例
- 动态方式
int[] a = new int[长度];
其中,int 是数组的数据类型,[ ] 表示数组,a 是数组名,new 是创建数组的关键字最后的*[长度]* 中年的数字表示的是数组的长度。
- 静态方式
int[] a = new int[]{数组元素};
静态方式定义时,系统会根据元素的个数自动计算数组的长度,数组的长度一旦确定就无法更改,否则会编译报错。
使用数组前,必须先将数组初始化,即为数组的每个元素赋值。Java中数组的初始化也有两种方式,动态初始化和静态初始化。动态初始化指定的是数组的长度,静态初始化指定的是数组的元素,两者不可以同时使用,即不可以在指定数组长度的同时指定数组的元素。
在完成定义和初始化后,我们就可以通过数组的下标来访问数组中的元素。
在Java中有提供方便数组操作的类Arrays,当我们需要使用时,需要引入java.util.Arrays
,其中有许多数组操作的方法。
1. 数组元素的拷贝
当我们需要拷贝数组时,我们可以用System.arraycopy
方法,示例如下:
System.arraycopy(arr1,b,arr2,d,length);
arr1 和 arr2 是数组,改代码表示从数组 arr1 的 b 位置开始向数组 arr2 的 d 位置拷贝 length 个元素。
示例
import java.util.Arrays;
public class ArrayTest
{
public static void main(String[] args)
{
int[] arr1 = new int[]{1,2,3,4}; //静态定义
int[] arr2 = new int[10]; //动态定义
System.arraycopy(arr1,0,arr2,0,arr1.length);
System.out.println(Arrays.toString(arr2));
}
}
运行结果
2. 数组内容填充
Arrays.fill()
方法可以在数组中填充自己想要的内容。需要注意的是,此处的赋值是浅拷贝。
示例
import java.util.Arrays;
public class ArrayTest
{
public static void main(String[] args)
{
String strings[] = new String[10];
Arrays.fill(strings, "A");
System.out.println(Arrays.toString(strings));
}
}
Arrays.fill(strings, "A");
是指将用A填充到strings数组中的每一个位置。
运行结果
3. 数组排序
我们可以使用Arrays.sort()
方法可以自动为数组中的元素由小到大进行排序。
示例
import java.util.Arrays;
public class ArrayTest
{
public static void main(String[] args)
{
int[] a = {2,5,6,8,7,1,3,4};
Arrays.sort(a);
System.out.println(Arrays.toString(a));
}
}
运行结果
其他的方法,如Arrays.toString()
可以直接将数组的元素及[ ]
一起输出。我们可以通过API帮助文档中的java.uilt.Arrays
包去了解更多的数组的方法的使用。