在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?

下一篇: How to add File [] Array content into ArrayList?