You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中不使用for循环将ArrayList<Integer>转为int[]及报错解决

解决ArrayList转int[]的类型不兼容问题

你遇到的错误是因为list.toArray()默认返回Object[]类型,无法直接转换为int[]。以下是几种无需for循环的解决方案:

原生Java 8+ Stream API(推荐,无需额外依赖)

利用Stream的mapToInt方法将Integer转换为int,再通过toArray()生成目标数组:

public static void main(String[] args) {
    ArrayList<Integer> list = new ArrayList<>();
    list.add(1);
    list.add(2);
    list.add(3);
    list.add(4);
    list.add(5);
    list.add(5);

    // 方案1:调用Integer的intValue方法
    int[] arr1 = list.stream().mapToInt(Integer::intValue).toArray();
    // 方案2:利用自动拆箱简化写法
    int[] arr2 = list.stream().mapToInt(i -> i).toArray();
}

使用Apache Commons Lang工具类

如果项目中已经引入Apache Commons Lang库,可以借助ArrayUtils.toPrimitive方法:

import org.apache.commons.lang3.ArrayUtils;

public static void main(String[] args) {
    ArrayList<Integer> list = new ArrayList<>();
    list.add(1);
    list.add(2);
    list.add(3);
    list.add(4);
    list.add(5);
    list.add(5);

    Integer[] tempArray = list.toArray(new Integer[0]);
    int[] arr = ArrayUtils.toPrimitive(tempArray);
}

使用Guava工具类

若项目依赖Guava库,Ints.toArray方法可以直接完成转换:

import com.google.common.primitives.Ints;

public static void main(String[] args) {
    ArrayList<Integer> list = new ArrayList<>();
    list.add(1);
    list.add(2);
    list.add(3);
    list.add(4);
    list.add(5);
    list.add(5);

    int[] arr = Ints.toArray(list);
}

内容的提问来源于stack exchange,提问作者Tapish Katiyar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 11:20:27