Arrays.asList() 和 Collections.singletonList() 區別

  1. 兩者最大區別就是可變性和不可變性
  • Arrays.asList()得到的List是可變的,跟據數組大小確定
  • 而Collections.singletonList是不可變的
  1. Collections.singletonList()得到的List元素只能有1個
  2. 既然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,無法向其中添加或刪除元素。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章