我可以用一个命令从java队列中轮询(删除)多个元素吗?

dgsult0t  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(155)

我在一个spring启动应用程序中有一个代码,它检索第一个 n a的要素 Queue<E> 作为一个 List<E> ,或所有剩余元素(如果少于) n 剩下的元素。
我知道我可以
poll n 然后把它放在一个列表中,但是有没有一种方法可以把它作为一个单独的动作来做呢?我并没有立即在CoreJava、SpringBoot或google的guava中看到任何东西。我当然可以自己编写代码,但如果已经提供了一些东西,我宁愿不要重新发明轮子。

/**
 * @param queue Queue containing a list of non-null elements
 */
private static <E> List<E> poll(Queue<E> queue, int n) {
    List<E> result = new ArrayList<>(n);
    for (int i = 0; i < n; i++) {
        // Could be optimized to fail fast on first null
        Optional.ofNullable(queue.poll()).ifPresent(result::add);
    }
    return result;
}

有没有办法找回第一个 n 元素作为单个java命令?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题