List<String> list = new ArrayList<String>();
for (String a : array)
list.add(a);
Однако сегодня у меня наконец дошли руки посмотреть, что никакого копирования на самом деле не происходит. Arrays реализует свой ArrayList который пишет в массив, переданный ему в качестве параметра. То есть все изменения в листе приводят к изменению в массиве и наоборот. Ну и, очевидно, возвращаемый этим методом лист не является полноправной реализацией интерфейса List, ибо методы add и remove поддерживать он не может. Странно, что я ни разу не наступила до этого на грабли с удалением:)
Кстати, еще одно, уже приятное открытие - иногда очень-очень хочется создавать листы на манер массивов. А-ля:
List<A> list = new ArrayList<A>(a1, a2, a3, a4);
И вот возможный вариант:
List<A> list = Arrays.asList(a1, a2, a3, a4);
Эх, все-таки полезно читать джава доки :)
Комментариев нет:
Отправить комментарий