java - 从集合中获取随机元素

标签 java

我有一个 Collection<Obj>我如何获得随机 Obj从中?

我检查了 docs而且似乎没有办法,因为迭代器是访问集合的唯一方法。我是否必须对其进行迭代以获得随机对象!?

最佳答案

使用 Lambda,您可以非常快速地完成此操作并处理 Collection 为空的情况。

public static <E> Optional<E> getRandom (Collection<E> e) {

    return e.stream()
            .skip((int) (e.size() * Math.random()))
            .findFirst();
}

关于java - 从集合中获取随机元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21092086/

相关文章:

java - CDI 和 EJB 如何比较?互动?

java - 如何编写一个程序来解决多个问题?

java - Vaadin 插件无法在 Eclipse (Windows 8.1) 中运行

java - 在 Objective-C 中创建存储类

java - 如何从 MyBatis 查询返回可选值

java - 在 intellij 13 中存储有关方法参数的信息(可通过反射使用)

java - 捕获用于 JavaFX WebView/WebEngine 的 URL

java - Java遗传算法中的一阶交叉

java - 如何解决 java 图像缩放错误

java - LibGDX - HTML5 runner,带网络?