Java 8: 将IntStream转换为Integer[]

11

我正在编写一个简单的程序,最终将绘制用Java编写的各种排序算法的运行时间。 排序算法的一般接口是通过一个方法实现的:public void sort(Comparable[] xs)

我尝试使用Java 8的流机制按照以下方式生成随机测试案例:

public static IntStream testCase(int min, int max, int n) {
    Random generator = new Random();
    return generator.ints(min, max).limit(n);
}

我的问题是,如何将类型为IntStream的对象转换为Integer[]


您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Holger
1个回答

23

您应该将box中的IntStream转换为Stream<Integer>,然后调用toArray方法来创建一个数组:

Integer[] arr = testCase(1,2,3).boxed().toArray(Integer[]::new);

关键是将IntStream封装成Stream<Integer>,使用boxed()方法。 - Weekend

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接