当前位置: 首页 > 面试题库 >

使用Java 8 Streams API随机播放整数列表

吕飞翼
2023-03-14
问题内容

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

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

为了用Java编写等效项,我创建了一个整数范围:

IntStream.range(1, 25)

我怀疑toList在流API中找到了一个方法,但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]


 类似资料:
  • 问题内容: 我有一个像这样的数组: 如何将其随机/随机播放? 问题答案: 实际无偏混洗算法是Fisher-Yates(aka Knuth)。

  • 问题内容: 我有以下DataFrame: 从csv文件读取DataFrame。所有具有1的行都位于最上面,然后是具有2的行,然后是具有3的行,依此类推。 我想重新整理DataFrame行的顺序,以便将所有行混合在一起。可能的结果可能是: 我该如何实现? 问题答案: 使用Pandas的惯用方式是使用数据框的方法对所有行进行采样而无需替换: 的关键字参数指定的行的分数到随机样品中返回,所以装置返回所有

  • 问题内容: 我试图将以下Python代码转换为Go 但是我发现Go版本冗长而笨拙,因为没有shuffle函数,我不得不实现接口和转换类型。 什么是我的代码的惯用Go版本? 问题答案: 由于列表只是1到25之间的整数,因此可以使用Perm: 请注意,使用由给定的置换是重新排列任何数组的有效方法。

  • 问题内容: 我有一个列表,可以使用内置的shuffle函数()进行shuffle 但是,Python参考指出: 请注意,即使很小,x的排列总数也比大多数随机数生成器的周期大。这意味着长序列的大多数排列永远不会生成。 现在,我想知道这个“相当小的len(x)”是什么意思。100、1000、10000,… 问题答案: TL; DR:它在包含2080多个元素的列表上“断开”,但是不必太担心:) 完整答案

  • 如何在按钮点击时发出随机的声音? 我对编程世界很陌生,我以前检查过上面的链接,试图用它作为播放随机声音的参考。我使用SoundPool因为我知道它比MediaPlayer更擅长播放短片段。我总共有四个声音。

  • 我正在wordpress网站上嵌入Spotify播放列表。嵌入播放列表很简单;尽管我在创建“跟随播放列表”按钮时遇到问题。我在这里浏览了SpotifyAPI文档:SpotifyAPI 我请求授权,得到了OAuth令牌。 根据我所读到的,我假设我需要创建一个html链接目标,例如: (这不起作用) 或 (我不知道该怎么办) 这是我尝试嵌入的示例播放列表:这是我尝试获取以下代码的示例播放列表:DJ T