背景
有些场景下,需要循环链表,如某些状态是从一个到下一个,最后再回到开始。此种情况下,可以采用循环链表来实现。
代码
package com.cxyzy.tencentfacerec;
import java.util.Iterator;
import java.util.concurrent.ConcurrentLinkedQueue;
/**
* 循环链表
* @author 程序园中猿
*/
public class CircularLinkedList<T> {
private ConcurrentLinkedQueue<T> list;
private Iterator<T> iterator;
public CircularLinkedList() {
list = new ConcurrentLinkedQueue<>();
iterator = list.iterator();
}
public void add(T t) {
list.add(t);
}
public T next() {
if (!iterator.hasNext()) {
iterator = list.iterator();
}
return iterator.next();
}
}