Перетворення між масивом та списком у Java

1. Огляд

У цій короткій статті буде показано, як здійснювати перетворення між масивом та списком за допомогою основних бібліотек Java, колекцій Guava або Apache Commons.

Ця стаття є частиною серії "Java - Назад до основного" тут, на Baeldung.

2. Перетворити список на масив

2.1. Використання звичайної Java

Почнемо з перетворення зі списку в масив за допомогою простої Java :

@Test public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() { List sourceList = Arrays.asList(0, 1, 2, 3, 4, 5); Integer[] targetArray = sourceList.toArray(new Integer[0]); }

Зверніть увагу, що toArray (новий T [0]) є кращим способом використання методу над toArray (новий T [розмір]) . Як доводить Олексій Шипільов у своєму дописі в блозі, це здається швидшим, безпечнішим та чистішим.

2.2. Використання гуави

Давайте тепер використаємо API Guava для того самого перетворення:

@Test public void givenUsingGuava_whenListConvertedToArray_thenCorrect() { List 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 targetList = Arrays.asList(sourceArray); }

Зверніть увагу, що це список фіксованого розміру, який все одно буде підтримуватися масивом. Якщо вам потрібен стандартний ArrayList, ви можете просто створити його як такий:

List targetList = new ArrayList(Arrays.asList(sourceArray));

3.2. Використання гуави

Давайте тепер використаємо API Guava для того самого перетворення:

@Test public void givenUsingGuava_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List targetList = Lists.newArrayList(sourceArray); } 

3.3. Використання колекцій Commons

І нарешті, давайте використаємо API Apache Commons Collections - CollectionUtils.addAll, щоб заповнити елементи масиву в порожній Список:

@Test public void givenUsingCommonsCollections_whenArrayConvertedToList_thenCorrect() { Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 }; List targetList = new ArrayList(6); CollectionUtils.addAll(targetList, sourceArray); }

4. Висновок

Реалізацію всіх цих прикладів та фрагментів коду можна знайти на GitHub - це проект на основі Maven, тому його слід легко імпортувати та запускати як є.