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, тому його слід легко імпортувати та запускати як є.