package com.ethjava; import java.util.*; //今天我们学习ArrayList的函数Arrays.asList(Array str) // Arrays类中提供了一个静态方法asList,使用该方法我们可以将一个数组转换为对应的List集合。 //返回的集合我们不能对其增删元素,否则会抛出异常,并且对集合的元素进行修改会影响数组对应的元素。 public class arraylistarr { public static void main(String args[]) { String[] myArray = {"Apple", "Banana", "Orange"}; List<String> myList = Arrays.asList(myArray); List<String> myList2 = Arrays.asList("Apple", "Orange"); System.out.println(myList);//[Apple, Banana, Orange] System.out.println(myList2);//[Apple, Orange] int[] myArray3 = { 1, 2, 3 }; List myList3 = Arrays.asList(myArray3); System.out.println(myList3);//输出[[I@28a418fc] System.out.println(myList3.size());//输出1 //解决方案:使用包装类数组 Integer[] myArray4 = { 1, 2, 3 }; List myList4 = Arrays.asList(myArray4); System.out.println(myList4);//[1, 2, 3] System.out.println(myList4.size());//输出3 //不能增加或者删除元素 //myList4.add(4);//java.lang.UnsupportedOperationException //asList 方法产生的 ArrayList 是不可修改大小的 //解决方案:创建一个真正的 ArrayList,可以随意扩容 String[] myArray5 = { "Apple", "Banana", "Orange", "yxf" }; List<String> myList5 = new ArrayList<String>(Arrays.asList(myArray5)); System.out.println(myList5);//[Apple, Banana, Orange, yxf] myList5.add("Guava"); System.out.println(myList5);//[Apple, Banana, Orange, yxf, Guava] //我们 new 了一个 java.util.ArrayList , // 然后再把 asList 方法的返回值作为构造器的参数传入, // 最后得到的 myList 自然就是可以动态扩容的了。 //用自己的方法实现数组到 List 的转换 String[] myArray6 = { "Apple", "Banana", "Orange","yxf2","zhangmeng" }; List<String> myList6 = new ArrayList<String>(); for (String str : myArray6) { myList6.add(str); } System.out.println(myList6);//[Apple, Banana, Orange, yxf2, zhangmeng] System.out.println(myList6.size());//输出5 } }
参考: