Преобразование между массивом и списком в Java
1. обзор
В этой быстрой статье будет показано, какconvert between an Array and a List использовать основные библиотеки Java, Guava или коллекции Apache Commons.
Эта статья является частьюthe “Java – Back to Basic” series здесь для примера.
2. ПреобразоватьList в массив
2.1. Использование простой Java
Начнем с преобразованияList в массивusing plain java:
@Test
public void givenUsingCoreJava_whenListConvertedToArray_thenCorrect() {
List sourceList = Arrays.asList(0, 1, 2, 3, 4, 5);
Integer[] targetArray = sourceList.toArray(new Integer[sourceList.size()]);
}
2.2. Использование гуавы
Давайте теперь используемthe Guava API для той же конверсии:
@Test
public void givenUsingGuava_whenListConvertedToArray_thenCorrect() {
List sourceList = Lists.newArrayList(0, 1, 2, 3, 4, 5);
int[] targetArray = Ints.toArray(sourceList);
}
3. Преобразовать массив вList
3.1. Использование простой Java
Начнем с простого Java-решения для преобразования массива вList:
@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. Использование гуавы
Давайте теперь используемthe Guava API для той же конверсии:
@Test
public void givenUsingGuava_whenArrayConvertedToList_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
List targetList = Lists.newArrayList(sourceArray);
}
3.3. Использование коллекций Commons
И, наконец, давайте воспользуемся APIApache Commons Collections -CollectionUtils.addAll для заполнения элементов массива в пустой List:
@Test
public void givenUsingCommonsCollections_whenArrayConvertedToList_thenCorrect() {
Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };
List targetList = new ArrayList<>(6);
CollectionUtils.addAll(targetList, sourceArray);
}
4. Заключение
Реализация всех этих примеров и фрагментов кодаcan be found over on GitHub - это проект на основе Maven, поэтому его должно быть легко импортировать и запускать как есть.