用Java在Array和List之間進行轉換
1.概述
這篇快速的文章將展示如何使用核心Java庫,Guava或Apache Commons Collections在數組和列表之間進行轉換。
本文是Baeldung上的“ Java – Back to Basic”系列的一部分。
2.將列表轉換為數組
2.1。使用純Java
讓我們開始使用純Java從List到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 Collections – CollectionUtils.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的項目,因此應該很容易直接導入和運行。
0 條評論,你可以發表評論,我們會進行改進
