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
}
}
参考:
Java ArrayList与Arrays.asList详解

本文深入探讨Java中ArrayList与Arrays.asList方法的使用技巧,包括如何将数组转换为List,解决不可修改问题,以及自定义数组到List的转换方法。
484

被折叠的 条评论
为什么被折叠?



