背景
有些场景下,需要循环链表,如某些状态是从一个到下一个,最后再回到开始。此种情况下,可以采用循环链表来实现。
代码
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();
    }
}










