用Java在Array和List之間進行轉換

1.概述

這篇快速的文章將展示如何使用核心Java庫,Guava或Apache Commons Collections在數組和列表之間進行轉換

本文是Baeldung上的“ Java – Back to Basic”系列的一部分。

2.將列表轉換為數組

2.1。使用純Java

讓我們開始使用純JavaList到Array的轉換:

@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 [size])相比toArray(new T [0])是使用該方法的首選方法。正如AlekseyShipilëv在其博客文章中所證明的那樣,它看起來更快,更安全,更乾淨。

2.2。使用Guava

現在讓我們使用Guava API進行相同的轉換:

@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

讓我們從將數組轉換為List的普通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。使用Guava

現在讓我們使用Guava API進行相同的轉換:

@Test

 public void givenUsingGuava_whenArrayConvertedToList_thenCorrect() {

 Integer[] sourceArray = { 0, 1, 2, 3, 4, 5 };

 List<Integer> targetList = Lists.newArrayList(sourceArray);

 }

3.3。使用Apache commons

最後,讓我們使用Apache Commons CollectionsCollectionUtils.addAll API將數組的元素填充到一個空的List中:

@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的項目,因此應該很容易直接導入和運行。