Java面試問題。有沒有什麼辦法在Java編程,然後循環結構遍歷給定的集合(一個數組),並在集合的每個元素上工作。如何在不使用任何循環結構的情況下通過集合?
回答
遞歸是一個辦法做到這一點
void it(Iterator i) {
if (i.hasNext()) {
System.out.println(i.next());
it(i);
}
}
+1代表示例。 – 2011-06-14 13:37:26
+1:即使你能做到這一點,我也會指出這些,任何在真實系統中做到這一點的人都應該被解僱。 :P – 2011-06-14 13:49:48
@Peter Lawrey同意 – RMT 2011-06-14 13:58:27
您可以交換遞歸迭代解決方案。循環是迭代的,所以只需創建一個遞歸解決方案。
是的,你可以遞歸經過一個函數來獲得相同的功能:
public void iterate(int[] array, int index){
if (index >= array.length){
return;
}else{
//work with element at array[index]
iterate(array, index+1);
}
}
除了遞歸公共收集具有實用方法你可能會用來做一個集合的東西。請注意,這個API也在內部使用循環結構。但是,客戶端代碼看起來像:
CollectionUtils.forAllDo(
yourCollection,
new Closure() {
void execute(java.lang.Object element) {
// do smt with element
}
}
);
檢查這裏的CollectionUtils:http://commons.apache.org/collections/apidocs/org/apache/commons/collections/Closure.html
+1我喜歡這個......尷尬的左撇子不是什麼人都期待的方法。我會相信它的作品。 – Matt 2011-06-14 14:02:17
- 1. 如何在不使用任何循環的情況下數數?
- 2. 如何在不使用任何數據結構的情況下正確循環移位數字?
- 3. 如何在不通過數據結構循環的情況下從列表中檢索特定的emp對象
- 4. 如何在不使用循環的情況下生成循環數字序列?
- 5. 如何通過jQuery結果集循環
- 6. 如何在沒有層次結構的情況下遵循xpath?
- 7. 如何在不通過brew安裝的情況下使用`psql`
- 8. 如何在我的情況下使用承諾循環
- 9. 如何在不使用循環變量的情況下構建循環的刻度
- 10. 如何在這種情況下使用「循環」?
- 11. 如何在不破壞循環的情況下返回值?
- 12. 如何在不引起循環引用的情況下使用LazyLoading和WCF?
- 13. 如何在不使用NSTimer的情況下在iPhone上製作遊戲循環
- 14. 如何在不通過.NET中的集合枚舉的情況下獲取ManagementObjects(WMI結果)的計數
- 15. 如何在這種情況下使用ZeroMQ設計結構
- 16. 如何在不使用循環的情況下刪除DataTable的行?
- 17. Spark:如何在不使用任何連接的情況下過濾行?
- 18. 如何在不導致循環的情況下使用htaccess重定向
- 19. 如何在不使用while循環的情況下運行服務器?
- 20. 如何在不使用循環的情況下突出顯示HTML表格列?
- 21. 如何在不使用for循環的情況下完全重置哈希?
- 22. Thread.sleep在循環中調用 - 在這種情況下如何防止它(通過重構)?
- 23. 在不使用循環的情況下更新C#中的DataTable?
- 24. 如何在不使用任何循環的情況下生成兩個變量的函數?
- 25. 如何在不使用任何循環的情況下增加元素的寬度
- 26. 如何在不使用iostreams的情況下構建Google protobuf?
- 27. FileStream.Read - 在不使用循環的情況下讀取流
- 28. 在不使用VBA的情況下循環遍歷工作表
- 29. 如何在不使用GROUP BY的情況下進行聚合?
- 30. 在這種情況下,我將如何使用「foreach」而不是「for」循環?
是否「轉到」資格作爲一個「循環」建設? :) – Nick 2011-06-14 13:40:53
@Nick在Java中沒有轉到。 – pingw33n 2011-06-14 13:41:43
顯然......一個理智的程序員不會在真正的程序中做這些事情:-) – 2011-06-14 13:45:15