程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Arrays.asList()注意,Arrays.asList()

Arrays.asList()注意,Arrays.asList()

編輯:JAVA綜合教程

Arrays.asList()注意,Arrays.asList()


api:

public static <T> List<T> asList(T... a)
返回一個受指定數組支持的固定大小的列表。(對返回列表的更改會“直接寫”到數組。)此方法同 Collection.toArray() 一起,充當了基於數組的 API 與基於 collection 的 API 之間的橋梁。返回的列表是可序列化的,並且實現了 RandomAccess

此方法還提供了一個創建固定長度的列表的便捷方法,該列表被初始化為包含多個元素:

     List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
 
參數:
a - 支持列表的數組。
返回:
指定數組的列表視圖。

遇到的問題:

java.lang.UnsupportedOperationException

在使用Arrays.asList()後調用add,remove這些method時出現 java.lang.UnsupportedOperationException異常。

 

原因:

這是由於Arrays.asList() 返回java.util.Arrays$ArrayList, 而不是ArrayList。

Arrays$ArrayList和ArrayList都是繼承AbstractList,remove,add等 method在AbstractList中是默認throw UnsupportedOperationException而且不作任何操作。

ArrayList override這些method來對list進行操作,但是Arrays$ArrayList沒有override remove(),add()等,所以throw UnsupportedOperationException。

 

 

解決辦法:

String[] arr ={"a","b","c"};

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

List<String> arrList = new ArrayList<String>(list);

 

 

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved