在Java中将int []转换为List <Integer>的最佳方式是什么?
可能重复:
如何在Java中从数组(T [])创建ArrayList(ArrayList <T>)
如何实现这个方法:
List<Integer> toList(int[] integers) {
???
//return Arrays.asList(integers); doesn't work
}
可能有一个内置方法可以在某处执行*(如您所注意的, Arrays.asList
不会像预期的Integer[]
而不是int[]
)那样工作。
我不太清楚Java库是否足以告诉你它在哪里。 但是写你自己很简单:
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;
}
显然,其中一个缺点是你不能一般地做到这一点。 你必须写一个单独的createList
你希望每个autoboxed原始类型的方法。
*如果没有,我真的不知道为什么。
List<Integer> asList(final int[] integers) {
return new AbstractList<Integer>() {
public Integer get(int index) {
return integers[index];
}
public int size() {
return integers.length;
}
};
}
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;
}
链接地址: http://www.djcxy.com/p/17633.html
上一篇: The best way to transform int[] to List<Integer> in Java?