2013-12-12 145 views
20

我使用下面的代碼。兩者在我的應用程序中工作正常。什麼是使用Arrays.asList()初始化列表的最佳方式

案例1.

List<String> coreModules = 
    new ArrayList<String>(Arrays.asList(
     "TOOLBAR_TO_DO_LIST", 
     "TOOLBAR_PROPERTY", 
     "TOOLBAR_PEOPLE", 
     "TOOLBAR_INSURANCE", 
     "TOOLBAR_BATCH", 
     "TOOLBAR_INFORMATION_REFERENCE", 
     "TOOLBAR_LR_PROPERTY", 
     "TOOLBAR_CASE_FOLDER", 
     "TOOLBAR_INSPECTION_RESULT", 
     "TOOLBAR_MY_OFFICE")); 

病例2

List<String> coreModules = 
    Arrays.asList(
     "TOOLBAR_TO_DO_LIST", 
     "TOOLBAR_PROPERTY", 
     "TOOLBAR_PEOPLE", 
     "TOOLBAR_INSURANCE", 
     "TOOLBAR_BATCH", 
     "TOOLBAR_INFORMATION_REFERENCE", 
     "TOOLBAR_LR_PROPERTY", 
     "TOOLBAR_CASE_FOLDER", 
     "TOOLBAR_INSPECTION_RESULT", 
     "TOOLBAR_MY_OFFICE"); 

但我有一些問題:

  1. 哪一個是更好的性能明智?
  2. 在哪種情況下更喜歡案例2?

瞭解更多:http://java91.blogspot.in/2017/01/what-is-best-way-of-using-arraysaslist.html

+5

檢查了這一點:http://stackoverflow.com/questions/16748030/arrays-aslistarray-in-java –

回答

39

案例2是更好的性能明智但是:它返回一個列表與不變的大小。這意味着你不能從它添加/刪除元素/:

返回固定大小的列表中指定數組支持。 (更改返回列表 「寫」 到數組。)

Arrays#asList

+2

的Javadoc說(爲Arrays.asList) :'返回由指定數組支持的固定大小列表。 (更改返回列表「直通」到數組。)'。所以它不是不可改變的。 –

+3

@Arnaud Denoyelle,嘗試添加或刪除列表中的元素並親自查看:)您可以更改現有元素,但不添加新元素。 – Lital

+0

'java.lang.UnsupportedOperationException'你說得對。爲你+1。 –

相關問題