Каков наилучший способ использования 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?
+23
12 дек. '13 в 8:52
источник поделиться
2 ответа

Случай 2 лучше по производительности BUT: он возвращает список с неизменным размером. Это означает, что вы не можете добавлять/удалять элементы в/из него:

Возвращает список фиксированного размера, поддерживаемый указанным массивом. (Изменения в возвращаемом списке "write through" в массив.)

Arrays#asList

+40
12 дек. '13 в 8:54
источник

Я думаю, что случай 2 похож на создание new String[10]. Вы не можете изменить размер, но вы можете изменять элементы. Случай 1 позволяет вам обоим.

Это показывает, что вы можете сделать с примером 2: http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/8u40-b25/java/util/Arrays.java#Arrays.ArrayList

0
16 мар. '16 в 15:52
источник

Посмотрите другие вопросы по меткам или Задайте вопрос