浅谈Arrays.asList()方法的使用

154 阅读1分钟

解读

首先,该方法是将数组转化为list。

有以下几点需要注意:

  1. 该方法不适用于基本数据类型(byte,short,int,long,float,double,boolean)
  2. 该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新
  3. 返回的是固定长度的 list,所以不支持 add 和 remove 方法

示例

  1. 将数组与列表链接起来,当更新其中之一时,另一个自动更新
String[] a = new String[]{"1", "2"};
List<String> b = Arrays.asList(a);
List<String> c = new ArrayList<>(Arrays.asList(a));
b.forEach(System.out::println); // 1 2
c.forEach(System.out::println); // 1 2
a[0] = "3";
a[1] = "4";
b.forEach(System.out::println); // 3 4
c.forEach(System.out::println); // 1 2
  1. 返回的是固定长度的 list,所以不支持 add 和 remove 方法
String[] a = new String[]{"1", "2"};
List<String> list = Arrays.asList(a);
list.add("3");

Exception in thread "main" java.lang.UnsupportedOperationException
	at java.util.AbstractList.add(AbstractList.java:148)
	at java.util.AbstractList.add(AbstractList.java:108)