我正在尋找Java中的循環集合。我有一些球員在Array
(他們等待輪到他們),但我想將Array
更改爲循環收集,以便讓下一個球員更容易(我知道如何才能做到這一點,但我想用已經用Java編寫的循環集合)。是否有循環List,Queue,標準Java庫中的其他內容?
0
A
回答
0
您可以將任何Iterable
設置爲循環集合。只要繼續請求Iterator
就行了。
class Ring<T> implements Iterable<T> {
// Source of all Iterators.
final Iterable<T> it;
// Current Iterator we are consuming.
Iterator<T> i;
public Ring(Iterable<T> it) {
this.it = it;
i = it.iterator();
}
@Override
public Iterator<T> iterator() {
return new Iterator<T>() {
@Override
public boolean hasNext() {
// There's always a next for a Ring.
return true;
}
@Override
public T next() {
if (!i.hasNext()) {
// Iterator is exhausted - make a new one!
i = it.iterator();
}
return i.next();
}
};
}
}
public void test() {
Ring<String> r = new Ring<>(Arrays.asList("One", "Two", "Three"));
int printed = 0;
for (String s : r) {
System.out.println(s);
if (++printed > 10) {
break;
}
}
}
注意,有當包裹Iterable
提供空迭代器,但我離開這個細節給學生一個奇怪的邊緣情況。
+0
只是我讀了「做一個新的!」就像一個小孩子說「讓我們有更多的蛋糕!」? –
+0
@AndrewG - 不! :) 我也是。 – OldCurmudgeon
相關問題
- 1. 檢查是否有其他循環
- 2. 標準庫中是否還有其他隊列?
- 3. Java while循環和其他
- 4. VB6:是否有標準庫(解析器)從內容中去除HTML標籤?
- 5. 如何檢查循環中的所有內容是否正確?
- 6. 是否有其他類型的void_t的標準泛化?
- 7. 除了在數組中循環以外的其他內容?
- 8. XML中「循環」的標準?
- 9. 而其他內循環而循環,無限循環
- 10. 是否有Java的編碼標準?
- 11. 是否有標準的Facebook Java Api?
- 12. 循環內的腳本標準
- 13. Java標準庫中是否有文本包裝功能?
- 14. 是否有定義CSV文件內容的標準方法?
- 15. C++中是否存在循環列表的標準實現?
- 16. BDD故事的驗收標準(和其他內容)
- 17. ,是否可以在同一行寫一個while循環及其所有內容?
- 18. Maven倉庫是否有標準格式?
- 19. 對於其他內部循環的for循環
- 20. 其他兩個循環內的foreach循環php
- 21. 與其他循環的循環交互
- 22. 使用標準庫替換循環strtok
- 23. Queue ForEach循環拋出InvalidOperationException
- 24. jQuery循環漂浮在其他內容之上
- 25. 如果 - 其他內部for循環
- 26. 如果/其他內循環與Dust.js
- 27. ISO標準命名是否有標準?
- 28. 訪問其他類的靜態方法是否標準?
- 29. 是否只有Apache Axis wsdl2Java或者是否有其他庫?
- 30. 標準庫中是否存在標準std :: endl的等價物?
你考慮過隊列嗎?但是否則,不,據我所知,循環集合不在標準Java庫中。 – awksp
@ user3580294據我所知,隊列不是循環的。 – Yoda
apache commons collection有一個。 – njzk2