[英]What data structure can be used for cyclic operations?
什么數據結構最適合循環存儲對象? 例如,我有一個對象列表,A,B,C,D,E,我需要循環處理它們,即A-> B-> C-> D-> E,然后是E-> A-> B- > C-> D -...
處理這種情況的最佳方法是什么? 謝謝。 我正在考慮圓形數組,但是根據Wikipedia所說,圓形數組最適合用於實現隊列。
您可以編寫自己的-非常簡單。
這將使任何Iterable
循環-但如果給出一個空集合將旋轉。 解決的問題留給學生,但要記住Queue
也是Collection
。
class Circular<T> implements Iterable<T> {
final Iterable<T> it;
public Circular(Iterable<T> it) {
this.it = it;
}
@Override
public Iterator<T> iterator() {
return new CircularIterator();
}
private class CircularIterator implements Iterator<T> {
// Start the ball rolling.
Iterator<T> i = it.iterator();
@Override
public boolean hasNext() {
// We're circular - we always have a next.
return true;
}
@Override
public T next() {
// Will loop until collection has elements. Could be a Queue of course.
while (!i.hasNext()) {
i = it.iterator();
}
return i.next();
}
}
}
public void test() {
List<String> l = Arrays.asList("A", "B", "C", "D");
int i = 0;
for (String s : new Circular<String>(l)) {
System.out.println(s);
if (i++ > 10) {
break;
}
}
}
您需要一個循環列表,該列表是一個列表,其中尾部指向列表的開頭
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.