1. Обзор
В этом кратком руководстве мы узнаем, как преобразовывать массив в список, используя основные библиотеки Java, коллекции Guava и Apache Commons.
Эта статья является частью серии «Java — Back to Basic» здесь, на ForEach.
2. Преобразовать список
в массив
2.1. Использование простой Java
Начнем с преобразования списка
в массив с использованием простой Java :
@Test
public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() {
List<Integer> sourceList = Arrays.asList(0, 1, 2, 3, 4, 5);
Integer[] targetArray = sourceList.toArray(new Integer[0]);
}
Обратите внимание, что для нас предпочтительным способом использования метода является toArray(new T[0])
по сравнению с toArray(new T[size])
. Как доказывает Алексей Шипилев в своем блоге , это кажется быстрее, безопаснее и чище.
2.2. Использование гуавы
Теперь давайте воспользуемся API Guava для того же преобразования:
@Test
public void givenUsingGuava_whenListConvertedToArray_thenCorrect() {
List<Integer> sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5);
int[] targetArray = Ints.toArray(sourceList);
}
3. Преобразование массива в список
3.1. Использование простой Java
Начнем с простого Java-решения для преобразования массива в список
:
@Test
public void givenUsingCoreJava_whenArrayConvertedToList_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
List<Integer> targetList = Arrays.asList(sourceArray);
}
Обратите внимание, что это список фиксированного размера, который по-прежнему будет поддерживаться массивом. Если нам нужен стандартный ArrayList,
мы можем просто создать его экземпляр:
List<Integer> targetList = new ArrayList<Integer>(Arrays.asList(sourceArray));
3.2. Использование гуавы
Теперь давайте воспользуемся API Guava для того же преобразования:
@Test
public void givenUsingGuava_whenArrayConvertedToList_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
List<Integer> targetList = Lists.newArrayList(sourceArray);
}
3.3. Использование коллекций Commons
Наконец, давайте воспользуемся API коллекций Apache Commons CollectionUtils.addAll ,
чтобы заполнить элементы массива в пустом списке:
@Test
public void givenUsingCommonsCollections_whenArrayConvertedToList_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
List<Integer> targetList = new ArrayList<>(6);
CollectionUtils.addAll(targetList, sourceArray);
}
4. Вывод
Реализацию всех этих примеров и фрагментов кода можно найти на GitHub . Это проект на основе Maven, поэтому его легко импортировать и запускать как есть.