2013-12-12 5 views
20

Ich benutze diesen Code unten. Beide funktionieren in meiner Anwendung gut.Was ist die beste Art, mit Arrays.asList() eine Liste zu initialisieren

Fall 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")); 

Fall 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"); 

Aber ich habe einige Fragen:

  1. Welche ist besser ein Performance-weise?
  2. In welchem ​​Fall bevorzugen Sie Fall 2?

Lesen Sie mehr: http://java91.blogspot.in/2017/01/what-is-best-way-of-using-arraysaslist.html

+5

Check this out: http://stackoverflow.com/questions/16748030/arrays-aslistarray-in-java –

Antwort

39

Fall 2 ist eine bessere Leistung weise ABER: es gibt eine Liste mit einer unveränderlichen Größe. Das heißt, Sie nicht hinzufügen können/entfernen Elemente zu/von ihm:

eine Kosten feste Größe Liste angegebenen Array gesichert. (Änderungen der zurückgegebenen Liste "write through" an das Array.)

Arrays#asList

+2

Javadoc (für Arrays.asList) sagt : 'Gibt eine Liste fester Größe zurück, die vom angegebenen Array unterstützt wird. (Änderungen an der zurückgegebenen Liste "durchschreiben" in das Array.) '. Es ist also nicht unveränderlich. –

+3

@ Arnaud Denoyelle, versuchen Sie, ein Element aus der Liste hinzuzufügen oder zu entfernen und sehen Sie selbst :) Sie können ein bestehendes Element ändern, aber kein neues hinzufügen. – Lital

+0

'java.lang.UnsupportedOperationException' Sie haben Recht. +1 für dich. –

Verwandte Themen