方法
Arrays.copyOf()
java.util.Arrays.copyOf ( T[] original, int newLength )
- 传回的数组是新的数组对象
- 改变传回数组中的元素值,不会影响原来的数组
- 第二个自变量指定要建立的新数组长度,如果新数组的长度超过原数组的长度,则保留数组默认值
import java.util.Arrays;
public class ArrayDemo {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOf(arr1, 5);
int[] arr3 = Arrays.copyOf(arr1, 10);
for(int i = 0; i < arr2.length; i++)
System.out.print(arr2[i] + " ");
System.out.println();
for(int i = 0; i < arr3.length; i++)
System.out.print(arr3[i] + " ");
}
}
1 2 3 4 5
1 2 3 4 5 0 0 0 0 0
https://www.jianshu.com/p/2b113f487e5e
Array.asList()
-
实现
String[] myArray = { "Apple", "Banana", "Orange" }; List<String> myList = Arrays.asList(myArray);
或者
List<String> myList = Arrays.asList("Apple", "Orange");
-
参数
-
asList 方法的参数必须是对象或者对象数组、
- 原生数据类型不是对象——这也正是包装类出现的一个主要原因
- 任何类型的对象都有一个 class 属性,这个属性代表了这个类型本身
- 原生数据类型,比如 int,short,long等,是没有这个属性的,具有 class 属性的是它们所对应的包装类 Integer,Short,Long
- 原生数据类型不是对象——这也正是包装类出现的一个主要原因
- 当传入一个原生数据类型数组时,asList 的真正得到的参数就不是数组中的元素,而是数组对象本身
- 此时List 的唯一元素就是这个数组
-
public class Test {
public static void main(String[] args) {
int[] myArray = { 1, 2, 3 };
List myList = Arrays.asList(myArray);
System.out.println(myList.size());
}
}
改为
public class Test {
public static void main(String[] args) {
Integer[] myArray = { 1, 2, 3 };
List myList = Arrays.asList(myArray);
System.out.println(myList.size());
}
}
-
返回
- asList 返回一个由指定数组生成的固定大小的 List,任何改变其大小的操作都是不允许的
public class Test { public static void main(String[] args) { String[] myArray = { "Apple", "Banana", "Orange" }; List<String> myList = Arrays.asList(myArray); myList.add("Guava"); } }
改为
public class Test { public static void main(String[] args) { String[] myArray = { "Apple", "Banana", "Orange" }; List<String> myList = new ArrayList<String>(Arrays.asList(myArray)); myList.add("Guava"); } }