假設我使用單線程應用程序,java.util.LinkedList是否有循環?我在source code中看到Entry是一個私人內部類,因此無法篡改它。只是想知道,在一個鏈接中找到一個循環就是一個很受歡迎的面試問題。沒有人會問如何設計一個列表來避免首先出現循環。或者我在這裏誤解了什麼?java.util.LinkedList可以有Loop嗎?
3
A
回答
1
你是對的,因爲j.u.LinkedList不公開api創建lops,它不被支持。也許有些反思暴力可能會發生。
我認爲這個問題來自一代c程序員,他們沒有鏈接列表的標準庫,他們往往會推出自己的。另外,由於C中沒有私有修飾符,所以如果你願意,總是可以在C鏈表中創建一個循環。
+0
是的,那是我的想法。 – 2012-07-29 06:18:34
1
您可以通過提供不暴露特定列表實現的接口來避免鏈接列表中的循環。這就是Java中發生的事情。 java.util.List
是一個接口,而java.util.LinkedList
只是其中一個實際上不會在主List之外暴露很多的接口。
訪談或計算機科學類主要關注鏈接列表的理論實現,您可以根據自己的喜好鏈接節點。
所以要回答你的問題:不,你不能有一個循環在java.util.LinkedList
。
0
可能存在各種誤解。爲什麼有人會問採訪問題的原因很多。這類面試問題的設計,看看如何好,你會:
- 理解鏈表的概念
- 能夠考慮在編程實踐
- 失誤討論Java實現的相同
第三點在我看來並不重要,因爲如果您需要了解它是如何實現的,您顯然可以訪問Java代碼。
相關問題
- 1. GetValue + loop =它可以更快嗎?
- 2. 有人可以解釋wordpress的「The Loop」嗎?
- 3. Ractive Numeric For Loop可能嗎?
- 4. java.util.LinkedList中的addFirst()
- 5. 我們可以將這個For-loop轉換成LINQ嗎?
- 6. 對於Var In Loop - 我可以省略一個變量嗎?
- 7. 你可以在'for-loop'中使用位移操作嗎?
- 8. Do While Loop和ExpectedConditions - 可以一起使用嗎?
- 9. 如何隱藏[「java.util.LinkedList中」,[
- 10. 在Java中優化for-loop有用嗎?
- 11. bash + dose for loop有限制嗎?
- 12. PrimitiveType可以有屬性嗎?
- 13. Go可以更有效嗎?
- 14. Companyweb上可以有OneNote嗎?
- 15. 可以有多個Dispatcher.BeginInvoke嗎?
- 16. ORM可以有多態嗎?
- 17. 有人可以解釋嗎?
- 18. C可以有物體嗎?
- 19. 可以驗證用戶嗎?他們可以有用戶名嗎?
- 20. 簡化LOOP查詢以擺脫LOOP
- 21. 反轉java.util.LinkedList的最佳方法(如果可能的話)
- 22. Freemarker中可以有私有宏嗎?
- 23. 我可以初始化SSIS For Loop容器中的兩個變量嗎?
- 24. 我可以在PHP中使用For-loop來顯示數據庫中的「行」嗎?
- 25. 在Objective-C中,可以在循環期間修改for-loop的條件嗎?
- 26. 你可以在Java上操作For Each Loop來重複迭代嗎?
- 27. 正在釋放java.util.LinkedList $條目內存
- 28. java.util.LinkedList導致無限循環/ OutOfMemoryError
- 29. Git可以嗎?
- 30. 可以嗎?
什麼是列表中的「循環」?我不明白你想問什麼。你的意思是一個循環列表嗎? – davidbuzatto 2012-07-29 06:08:59
在單向鏈表中指向其中一個較早節點的稍後節點中循環。 – 2012-07-29 06:12:05