web-dev-qa-db-de.com

Was ist der beste Weg, Arrays.asList () zu verwenden, um eine Liste zu initialisieren?

Ich verwende diesen Code. Beide funktionieren gut in meiner Anwendung.

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

Ich habe aber einige Fragen:

  1. Welches ist besser in Bezug auf die Leistung?
  2. In welchem ​​Fall bevorzugen Sie Fall 2?
23
Sitansu

Fall 2 ist besser in Bezug auf die Leistung, ABER: Er gibt eine Liste mit einer unveränderlichen Größe zurück. Das bedeutet, dass Sie keine Elemente hinzufügen oder daraus entfernen können:

Gibt eine fixed-size - Liste zurück, die vom angegebenen Array gesichert wird. (Änderungen an der zurückgegebenen Liste "Durchschreiben" des Arrays.)

Arrays#asList

41
Lital Kolog

Ich denke, Fall 2 ist wie das Erstellen von new String[10]. Sie können die Größe nicht ändern, aber Sie können Elemente ändern. Fall 1 erlaubt Ihnen beides.

Dies zeigt, was Sie mit Fall 2 tun können: http://grepcode.com/file/repository.grepcode.com/Java/root/jdk/openjdk/8u40-b25/Java/util/Arrays.Java#Arrays. Anordnungsliste

0
zek_w