The best way to transform int[] to List<Integer> in Java?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How to create ArrayList (ArrayList) from array (T[]) in Java
如何实现此方法:
1 2 3 4 | List<Integer> toList(int[] integers) { ??? //return Arrays.asList(integers); doesn't work } |
可能有一种内置的方法可以在某个地方实现它*(如您所注意到的,
我不太熟悉Java库,告诉你在哪里。但写自己的东西很简单:
1 2 3 4 5 6 7 | public static List<Integer> createList(int[] array) { List<Integer> list = new ArrayList<Integer>(array.length); for (int i = 0; i < array.length; ++i) { list.add(array[i]); } return list; } |
显然,这样做的一个缺点是,你不能一般地这样做。您必须为所需的每个自动盒基元类型编写一个单独的
如果没有,我真的很想知道为什么没有。
使用commons-lang3
1 2 |
编辑:如果你想通过列表界面添加新的元素(调整大小),这是不起作用的,如果你想添加新的元素,你可以使用
1 2 3 4 5 6 7 8 9 10 11 | List<Integer> asList(final int[] integers) { return new AbstractList<Integer>() { public Integer get(int index) { return integers[index]; } public int size() { return integers.length; } }; } |
1 2 3 4 5 6 7 8 9 10 11 12 | List<Integer> toList(int[] integers) { // Initialize result's size to length of the incoming array // this way it will not require reallocations ArrayList<Integer> result = new ArrayList<Integer>( integers.length ); for ( int cur: integers ) { result.add( Integer.valueOf( cur ) ); } return result; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import java.util.Arrays; import java.util.ArrayList; import java.util.List; public class Listing { public static void main(String[] args) { int[] integers = {1,2,3,4}; java.util.List<Integer> list = new ArrayList<Integer>(); for (int i=0; i< integers.length; i++) { list.add(integers[i]); } System.out.println(list); } } |
测试并按预期工作!
不幸的是,我认为没有一种快速的方法可以做到这一点。我相信您必须迭代数组并逐个添加它。