在Java中的数组和列表之间的转换
评论 0
浏览 0
2014-05-31
1.概述
在这个快速教程中,我们将学习如何使用Java核心库、Guava和Apache Commons Collections在数组和列表之间进行转换。
这篇文章是"Java - Back to Basic "系列的一部分。
2.将List转换为数组
2.1.使用普通的Java
让我们从List到数组的转换开始吧使用普通的Java。
@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[0])与toArray(new T[size])。正如Aleksey Shipilë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.将数组转换为List
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 Collections
最后,让我们使用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 个评论