如何将int []转换为ArrayList

时间:2013-11-19 15:50:15

标签: java

我想知道如何在java中将int[]转换为Integer[]

基本上我想在java中将int[]转换为ArrayList

我找到了一些示例,但它们基于Integer对象,而不是基于int[]

称为: Convert int[] into ArrayList

由于

7 个答案:

答案 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.ArrayUtilsint[]转换为Integer[],然后使用Arrays.asList()来支持List中的数组:

import java.util.Arrays;
import org.apache.commons.lang.ArrayUtils;

int[] array = ...;
List<Integer> list = Arrays.asList(ArrayUtils.toObject(array));