java - 无需迭代即可将 List<Integer> 转换为 int[] ( array ) 的有效方法

标签 java arrays list

  public static int[] convertListToArray(List<Integer> listResult) {
        int[] result = new int[listResult.size()];
        int i= 0;
        for (int num : listResult) {
            result[i++] = num;
        }
        return result;
    }

是否有一种无需显式迭代 List 即可将 List 转换为数组的有效方法? 也许可以使用如下方法:

Arrays.copyOf(int [] origin , int newLength );
System.arraycopy(Object src,  int  srcPos,
                                    Object dest, int destPos,
                                    int length);

我知道有一个解决方案描述 here .但是,我对一种有效的转换方式特别感兴趣 List<Integer>int[]

最佳答案

鉴于需要将 Integer 转换为 int,如果我假设您,我不认为您会找到比您现有的更有效的东西'谈论运行时效率。

可能会发现先转换为Integer[]然后循环可能更有效(见下文),但您也可能不会 .您必须在您的特定场景中对其进行测试并查看。

这是这个例子:

int size = listResult.size();
int[] result = new int[size];
Integer[] temp = listResult.toArray(new Integer[size]);
for (int n = 0; n < size; ++n) {
    result[n] = temp[n];
}

关于java - 无需迭代即可将 List<Integer> 转换为 int[] ( array ) 的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41520654/

相关文章:

r - 使用类似于 xpath 的方式访问 R 中列表的元素

java - 从java执行make命令来编译其他程序

Java行星轨道模拟: centering planets

java - 如何为我的java程序中的每次运行更改变量

arrays - 检查两个数组是否相等的算法

python - 计算列表中子列表的特定索引中值的实例,但每个列表只计算一次

java - 基于其中元素数量的 java.util.List 的异常行为

java - 阻止传入短信

java - Lambda 表达式和匿名类之间的实现差异/优化

c# - 返回唯一值而不删除重复项 - C#