基于java自带链表结构实现循环链表

背景

有些场景下,需要循环链表,如某些状态是从一个到下一个,最后再回到开始。此种情况下,可以采用循环链表来实现。

代码

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();
    }

}

猜你喜欢

转载自blog.csdn.net/yinxing2008/article/details/83536272