Каков наилучший способ использования 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");
Но у меня есть несколько вопросов:
- Какой из них лучше с точки зрения производительности?
- В каком случае предпочитаете Случай 2?
Ответы
Ответ 1
Случай 2 лучше по производительности BUT: он возвращает список с неизменным размером. Это означает, что вы не можете добавлять/удалять элементы в/из него:
Возвращает список фиксированного размера, поддерживаемый указанным массивом. (Изменения в возвращаемом списке "write through" в массив.)
Arrays#asList
Ответ 2
Я думаю, что случай 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