我們可以使用舊的for循環(for(i = 0, j = 0; i<30; i++,j++)
)兩個變量 我們可以使用for-each循環(或增強的for循環)在Java中(for(Item item : items)
兩個變量是什麼?對於語法?Java中新的for循環可以與兩個變量一起使用嗎?
5
A
回答
7
不幸的是,Java支持只是一個初步的foreach循環稱爲增強的for循環。其他語言,特別是像Scala這樣的FP,支持一種稱爲列表理解的構造(Scala將其稱爲,理解爲),它允許嵌套迭代以及沿途元素的過濾。
9
1
foreach循環假定只有一個事物集合。你可以爲每個迭代的每個元素做些事情。如果你能一次迭代兩個集合,你希望它的行爲如何?如果他們有不同的長度呢?
假設你有
Collection<T1> collection1;
Collection<T2> collection2;
你可以寫一個迭代器包裝,迭代都返回某種合併的結果。
for(TwoThings<T1, T2> thing : new TwoCollectionWrapper(collection1, collection2) {
// one of them could be null if collections have different length
T1 t1 = thing.getFirst();
T2 t2 = thing.getSecond();
}
這是我能想到的最接近的,但我沒有看到太多用處。如果兩個集合都要迭代在一起,首先創建一個Collection<TwoThings>
會更簡單。
除了並行迭代,你可能也想循序迭代。有這樣的實現,例如番石榴的Iterables.concat()
1
簡單的答案「否」已經給出。但是你可以實現兩個迭代器作爲參數,並返回來自兩個迭代器的元素對。 Pair是兩個字段的類。你必須自己實現它,或者它可能存在於某些apache公共或類似的lib中。
這個新的迭代器可以在foreach循環中使用。
2
下面應該有你想要達到相同的(表現)功效:
List<Item> aItems = new List<Item>();
List<Item> bItems = new List<Item>();
...
Iterator aIterator = aItems.iterator();
Iterator bIterator = bItems.iterator();
while (aIterator.hasNext() && bIterator.hasNext()) {
Item aItem = aIterator.next();
Item bItem = bIterator.next();
}
相關問題
- 1. Python:C for循環與兩個變量
- 2. 我們可以在FOR-IN循環中使用變量嗎
- 3. 可以在Java中創建一個循環變量嗎?
- 4. Can for循環可以創建新變量嗎?
- 5. 我可以在一個foreach循環中使用兩組變量嗎?
- 6. 如何在`for`循環使用AWK兩個循環變量
- 7. For兩個變量的循環
- 8. 我可以使用'for'循環嗎?
- 9. Java for循環多變量
- 10. 使用變量 'for' 循環
- 11. 我可以在for循環中聲明局部變量嗎?
- 12. 與RedBeanPHP一起使用FOR循環
- 13. 將facet_wrap與for循環一起使用
- 14. 將multipart與for循環一起使用
- 15. JAVA-如何從for循環訪問FOR循環中的變量
- 16. for循環使用for循環中聲明的變量值?
- 17. 在Java中,我可以在for循環中更改變量名嗎?
- 18. 我可以重新定義for循環體中的迭代器變量嗎?
- 19. 使用Ansible Playbook可以與with_dict和with_nested一起循環嗎?
- 20. 如何在Java中for循環中重新使用變量而不初始化一個新變量?
- 21. for循環多個可變,第二個變量沒有更新
- 22. for循環中的標識符是一個變量嗎?
- 23. 使用循環FOR改變的變量
- 24. Umbraco XSLT for-每個循環與變量
- 25. 我可以在javascript中的一條語句中運行兩個for循環嗎?
- 26. 我可以使用for循環而不是while循環嗎?
- 27. 可以在for循環中使用多個if語句嗎?
- 28. 可以在for循環中使用多個continue語句嗎?
- 29. 與FIFOs通信的兩個程序使用for循環但不與while循環一起使用
- 30. for循環多個變量
這不是一個'新的loop',它基本上是一個foreach循環。你不能。 – MightyPork
@MightyPork它*增強了循環*。 –
名稱如何改變它的用途和用途?它相當於foreach循環。 – MightyPork