24 Stimmen

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

Ich benutze den folgenden Code. Beide funktionieren gut in meiner Anwendung.

Fall 1.

List coreModules =
    new ArrayList(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 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. Welcher ist aus Leistungsgründen besser?
  2. In welchem Fall bevorzugen Sie Fall 2?

42voto

Lital Kolog Punkte 1281

Fall 2 ist leistungsmäßig besser ABER: es gibt eine Liste mit einer unveränderlichen Größe zurück. Das bedeutet, dass Sie keine Elemente hinzufügen/entfernen können:

Gibt eine festgelegte Größe Liste zurück, die durch das angegebene Array unterstützt wird. (Änderungen an der zurückgegebenen Liste werden "durchgeschrieben" zum Array.)

Arrays#asList

0voto

zek_w Punkte 97

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

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.ArrayList

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X