我想知道如何在java中将int[]
转换为Integer[]
。
基本上我想在java中将int[]
转换为ArrayList
。
我找到了一些示例,但它们基于Integer
对象,而不是基于int[]
。
称为: Convert int[] into ArrayList
由于
答案 0 :(得分:6)
这样的事情:
int[] array = ...;
List<Integer> list = new ArrayList<Integer>(array.length);
for (int i : array) list.add(i);
注意构造函数的参数。这样可以将底层阵列的初始容量设置为最佳性能。
答案 1 :(得分:1)
您必须将int
封装到Integer
对象中,因为您无法创建List<int>
列表。
int[] array = new int[1, 2, 3, 4, 5, 6];
List<Integer> list = new ArrayList<Integer>(array.length);
for (int i = 0; i < array.length; i++) {
list.add(Integer.valueOf(array[i]);
}
答案 2 :(得分:0)
for(int i : yourArray) {
yourArrayList.add(i);
}
应该这样做
答案 3 :(得分:0)
int[] old = something;
ArrayList<Integer> new = new ArrayList<Integer>();
for (int x : old){
new.add(x);
}
答案 4 :(得分:0)
你可以使用guava的newArrayList()。
答案 5 :(得分:0)
如果你想从List<Integer>
中取出int[]
,而你的关注就是表现(所以其他所提供的答案对你来说仍然“太慢”),你可以写一个自定义由List<Integer>
int[]
实施
public class IntegerList extends AbstractList<Integer> implements List<Integer> {
private final int[] data;
public IntegerList(int[] data) { this.data = data; }
@Override
public Integer get(int index) { return data[index]; }
@Override
public int size() { return data.length; }
}
// usage
List<Integer> myIntegerList = new IntegerList(myIntArray);
缺点是:
int[]
的更改将影响列表实例。Integer
开始创建int
个对象仍然会发生,只是推迟到get(int)
被调用。答案 6 :(得分:0)
我会使用Apache Commons Lang库中的org.apache.commons.lang.ArrayUtils
将int[]
转换为Integer[]
,然后使用Arrays.asList()
来支持List中的数组:
import java.util.Arrays;
import org.apache.commons.lang.ArrayUtils;
int[] array = ...;
List<Integer> list = Arrays.asList(ArrayUtils.toObject(array));