“Java中数组转列表”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
(建立内容为“=== Arrays.asList === <syntaxhighlight lang="java"> import java.util.Arrays; import java.util.List; public class ArrayToList { public static void main(Strin…”的新页面)
 
 
第11行: 第11行:
  
 
         List<String> list = Arrays.asList(strArray);
 
         List<String> list = Arrays.asList(strArray);
 +
 +
        System.out.println("第一次输出:");
 +
 +
        list.forEach(System.out::println);
 +
 +
        list.add("ccc");
 +
 +
        System.out.println("第二次输出:");
  
 
         list.forEach(System.out::println);
 
         list.forEach(System.out::println);
第18行: 第26行:
 
}
 
}
 
</syntaxhighlight><syntaxhighlight lang="console">
 
</syntaxhighlight><syntaxhighlight lang="console">
 +
第一次输出:
 
isy
 
isy
 
mi
 
mi
 
ka
 
ka
 
sa
 
sa
 +
Exception in thread "main" java.lang.UnsupportedOperationException
 +
at java.util.AbstractList.add(AbstractList.java:148)
 +
at java.util.AbstractList.add(AbstractList.java:108)
 +
at io.github.jihch.ArrayToList.main(ArrayToList.java:19)
 
</syntaxhighlight>需要注意的是:
 
</syntaxhighlight>需要注意的是:
  
Arrays.asList() 的实现是 new ArrayList<>(a);,但这个 ArrayList 是 '''java.util.Arrays.ArrayList,'''并不是  '''java.util.ArrayList''',虽然都是
+
Arrays.asList() 的实现是 new ArrayList<>(a);,但这个 ArrayList 是 '''java.util.Arrays.ArrayList,'''并不是  '''java.util.ArrayList''',虽然都是数组,但第一个不能执行 add 操作

2022年12月20日 (二) 19:13的最新版本

Arrays.asList

import java.util.Arrays;
import java.util.List;

public class ArrayToList {

    public static void main(String[] args) {

        String[] strArray = {"isy", "mi", "ka", "sa"};

        List<String> list = Arrays.asList(strArray);

        System.out.println("第一次输出:");

        list.forEach(System.out::println);

        list.add("ccc");

        System.out.println("第二次输出:");

        list.forEach(System.out::println);

    }

}
第一次输出:
isy
mi
ka
sa
Exception in thread "main" java.lang.UnsupportedOperationException
	at java.util.AbstractList.add(AbstractList.java:148)
	at java.util.AbstractList.add(AbstractList.java:108)
	at io.github.jihch.ArrayToList.main(ArrayToList.java:19)

需要注意的是:

Arrays.asList() 的实现是 new ArrayList<>(a);,但这个 ArrayList 是 java.util.Arrays.ArrayList,并不是 java.util.ArrayList,虽然都是数组,但第一个不能执行 add 操作