不用说大家也知道java.lang.Array
是对Java反射包中数组操作的一个类。JavaSE8的文档中对Array的描述是这样说的:
The Array class provides static methods to dynamically create and access Java arrays.
Array类提供静态方法来动态创建和访问Java数组。访问不难理解,动态创建可以细看一下。
让我们先看看java.util.Arrays
-
注意是Arrays,相信有些小伙伴已经用过很多次这个工具类了,提供了很多对数组操作的方法方便我们使用。
-
上面说了
java.lang.Array
是提供给我们静态方法来动态创建和访问数组。让我们来看看Arrays中的copyOf方式是怎么来动态操作数组的吧。
public static <T> T[] copyOf(T[] original, int newLength) {
return (T[]) copyOf(original, newLength, original.getClass());
}
copyOf是拿来干嘛的呢?Arrays主要提供这个方法来给已经填满的数组来拓展数组大小的。
你可以这样用
User[] users = new User[10];
...//假如满了,给数组长度翻倍。
users = Arrays.copyOf(users, users.length * 2);
不知道大家有没有注意到,这个方法是个泛型的返回结果。它的第一个参数是原始数组,第二个参数为新的长度