- 兩者最大區別就是可變性和不可變性
- Arrays.asList()得到的List是可變的,跟據數組大小確定
- 而Collections.singletonList是不可變的
- Collections.singletonList()得到的List元素只能有1個
- 既然Collections.singletonList()不可變,那就不要嘗試對其元素修改,一旦修改就會導致UnsupportedOperationException異常拋出
另外再介紹幾個Collections下的其他特殊容器類方法:
創建空容器:
- 創建空List:public static final <T> List<T> emptyList()
- 創建空Map:public static final <K,V> Map<K,V> emptyMap()
- 創建空Set:public static final <T> Set<T> emptySet()
創建單容器:
- 創建一個元素的List:public static <T> List<T> singletonList(T o)
- 創建一個元素的Map:public static <K,V> Map<K, V> singletonMap(K key, V value)
- 創建一個元素的Set:public static <T> Set<T> singleton(T o)
注意,上面6個方法,都是不可變的immutable
,無法向其中添加或刪除元素。