RandomizedQueue类:enqueue()为插入队列,而dequeue()为随机弹出队列中的一个元素,还有sample()表示随机得到队列的一个元素(但是不弹出),foreach 遍历时将元素随机顺序输出。
思路:可以用数组实现比较方便。对于dequeue(),首先生成0-N-1之间的随机数randomIndex,然后
Item item= a[randomIndex];
a[randomIndex] = a[--N];
a[N] = null;
最后动态改变数组,让代码更合理(不用设置上界,更节省空间)。