java - 使用 Java 8 Streams API 打乱整数列表

标签 java scala java-stream

我尝试使用 Streams API 将以下 Scala 行转换为 Java 8:

// Scala
util.Random.shuffle((1 to 24).toList)

为了用 Java 编写等价的代码,我创建了一个整数范围:

IntStream.range(1, 25)

我怀疑在stream API中找到了一个toList方法,但是IntStream只知道奇怪的方法:

collect(
  Supplier<R> supplier, ObjIntConsumer<R> accumulator, BiConsumer<R,R> combiner)

如何使用 Java 8 Streams API 打乱列表?

最佳答案

给你:

List<Integer> integers =
    IntStream.range(1, 10)                      // <-- creates a stream of ints
        .boxed()                                // <-- converts them to Integers
        .collect(Collectors.toList());          // <-- collects the values to a list

Collections.shuffle(integers);

System.out.println(integers);

打印:

[8, 1, 5, 3, 4, 2, 6, 9, 7]

关于java - 使用 Java 8 Streams API 打乱整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20058366/

相关文章:

scala - Spark 2.2 : Load org. apache.spark.ml.feature.LabeledPoint 来自文件

mysql - 使用现有的 mysql 表时巧妙地跳过 Evolution

java - 如何使用 Streams 添加嵌套集合中的值

java - JAX RS,我的过滤器不工作

java - HashMap 中的每键锁而不是整个映射锁

java - 混合文本和元素节点时 XML 子节点迭代的问题

Java 流 - 在一次迭代中应用两个过滤器并收集到两个集合

java - 如何使android日期选择器不允许选择过去的日期

scala - 扩展内置集合,内置方法的问题

java - 如何从数组创建流?