学习笔记,仅供参考,有错必纠
Arrays工具类的asList方法
- 方法概述
public static <T> List<T> asList(T... a)
返回一个受指定数组支持的固定大小的列表,参数a表示一个支持列表的数组。
- 举个例子
package com.guiyang.object;
import java.util.List;
import java.sql.Array;
import java.util.ArrayList;
import java.util.Arrays;
public class Demo4_AsList {
public static void main(String[] args) {
demo1();
// 集合转数组
System.out.println("----");
Demo2();
// 数组转集合
}
private static void Demo2() {
String[] arr = {"a", "b", "c"};
List<String> list = Arrays.asList(arr);
System.out.println(list);
System.out.println("-------");
int[] arr1 = {1, 2, 3};
//因为数组中为基本数据类型int,所以当我们将arr1传递给asList时
//asList会将整个数组作为一个对象,转化为集合
List<int[]> list1 = Arrays.asList(arr1);
//当我们将数组转换为集合时,则数组内元素必须是引用数据类型
//否则会返回一个装有数组对象地址值的集合
System.out.println(list1);
System.out.println("-------");
Integer[] arr2 = {11, 22, 33};
List<Integer> list2 = Arrays.asList(arr2);
System.out.println(list2);
}
private static void demo1() {
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
String[] arr = list.toArray(new String[0]);
//当集合转换为数组时,设置的数组的长度如果小于等于集合的size
//那么转换后的数组长度(String[0])将等于size
//如果设置的数组长度(String[10])大于集合的size
//则分配的数组长度和我们指定的长度一样
for (String string : arr) {
System.out.println(string);
}
}
}
注意!通过asList方法,由数组转换来的集合,除了不可以增加和删除以外,可以用集合的其他任何方法。
输出:
a
b
c
d
----
[a, b, c]
-------
[[I@6d06d69c]
-------
[11, 22, 33]