从Java.util.Deque中选择一个随机元素

时间:2014-05-02 20:46:48

标签: java random performance deque

通常我会将Deque用于它的预期目的但不经常我需要从中选择一个随机元素。我使用下面的代码来执行此操作,但它需要迭代Deque。有没有更有效的方法呢?

Iterator<T> iterator = mDeque.iterator();
int target = mRand.nextInt(mDeque.size());
while (iterator.hasNext()) {
    if (target == 0) {
        chosenElement = iterator.next();
        break;
    } else {
        iterator.next();
        target--;
     }
 }

1 个答案:

答案 0 :(得分:1)

您可以使用ArrayDeque,使用toArray,然后直接使用索引([target]作为示例)