Round-Robin算法的迭代器实现
来源:互联网 发布:零售行业数据 编辑:程序博客网 时间:2024/05/22 07:04
import java.util.*;//实现了迭代器接口public class RockingRobin implements Iterator<Integer> {//集合内迭代器的数量int size;//指针,指向当前迭代器在数组中的位置int cursor;//存放迭代器的数组Iterator<Integer>[] itrs;@SuppressWarnings("unchecked")public RockingRobin(Collection<Iterator<Integer>> collections) {//将装有迭代器的集合转为数组this.itrs = collections.toArray(new Iterator[0]);//迭代器数量this.size = collections.size();}@Overridepublic boolean hasNext() {//遍历数组,只要有一个迭代器没有迭代完,就返回truefor (Iterator<Integer> itr : itrs) {if (itr.hasNext()) {return true;}}return false;}@Overridepublic Integer next() {//如果有元素(迭代器)没有迭代完if (this.hasNext()) {cursor %= size;//如果当前指针指向的迭代器已经迭代完了//就找下一个没有迭代完的迭代器//循环查找while (!itrs[cursor].hasNext()) {cursor++;cursor %= size;}return (Integer) itrs[cursor++].next();} else {//都迭代完了,还调用next方法,直接抛出异常throw new NoSuchElementException();}}public static void main(String[] args) {Collection<Integer> one = Collections.singleton(1);Collection<Integer> two = Arrays.asList(2, 3);Collection<Integer> three = Arrays.asList(4,5,6);Iterator<Integer> itr1 = one.iterator();Iterator<Integer> itr2 = two.iterator();Iterator<Integer> itr3 = three.iterator();RockingRobin robin = new RockingRobin(Arrays.asList(itr1,itr2,itr3));//1,2,4,3,5,6while (robin.hasNext()) {Integer i = robin.next();System.out.println(i);}}}
阅读全文
0 0
- Round-Robin算法的迭代器实现
- nginx round robin 算法的实现
- Round-robin 算法
- Round-Robin负载均衡算法及其实现原理
- Round-Robin负载均衡算法及其实现原理
- Round-Robin负载均衡算法及其实现原理
- Round-Robin负载均衡算法及其实现原理
- Round-Robin负载均衡算法及其实现原理
- Round-Robin负载均衡算法及其实现原理
- 100012---Round-Robin负载均衡算法及其实现原理
- Round-Robin负载均衡算法及其实现原理
- Round-Robin负载均衡算法及其实现原理(转)
- 轮询调度算法(Round-Robin Scheduling)
- 轮询调度算法(Round-Robin Scheduling)
- 轮询调度算法(Round-Robin Scheduling)
- 轮询调度算法(Round-Robin Scheduling)
- 轮询调度算法(Round-Robin Scheduling)
- 轮询调度算法(Round-Robin Scheduling)
- Java常用类
- bootstrap学习总结分享
- 用训练好的caffemodel来进行分类
- HTML5实现简单的拖放功能
- 算法题练习系列之(十九): 程序运行时间
- Round-Robin算法的迭代器实现
- BZOJ 2301 [HAOI2011]Problem b (莫比乌斯反演)
- wfrf
- 冒泡小例子
- 解决mysql connection ODBC安装系统代码126错误 VC2013安装
- MYSQL学习笔记(二十一)使用触发器
- MYSQL学习笔记(二十二)管理事务处理
- Java多线程之线程状态案例
- STL set