簡體   English   中英

從頭開始鏈接列表類與默認鏈表列表?

[英]Linked list class from scratch vs Default linked list class?

作為項目/作業的學生,​​我一直在編寫我的鏈表數據結構,我想知道“真實世界”開發人員是否必須編寫自己的鏈表DS或使用任何已提供的鏈表Java文檔中的對象。 哪種情況更好?在什么情況下?

自定義LinkedList實現很可能會更有效,因為它允許您根據需要進行優化,但JDK的LinkedList始終優於其可重用性和可維護性優勢:

  1. 沒有人需要維護LinkedList的實現。
  2. 將來會自動繼承List接口的任何添加內容。
  3. 閱讀代碼的開發人員將立即了解正在發生的事情。
  4. Collections API有許多有用的實用方法可供使用。
  5. 您的LinkedList將與許多使用List的第三方庫兼容。

如果您決定創建自定義List實現,您可以選擇擴展AbstractSequentialList以獲得#2,#4和可能#5的好處。

非常簡單的規則:除非你有充分的理由這樣做,否則不要重新發明輪子。

含義:當你做“專業”工作時; 你永遠平衡

A)重新使用現有的組件

B)創建自己的解決方案。

特別是對於任何“收集”導向的東西, 完全重做某些東西的理由很少。

因此,“技術”答案是:對於生產工作,您必須評估這兩種替代方案的成本/收益; 然后你決定做什么。 但特別是對於來自Java 標准庫的類,您應該更喜歡重用。 無論如何,你依賴這些圖書館; 所以不使用它們是沒有意義的。

並提供一些可以考慮的事情:

A)從編寫自己的組件中獲益:避免依賴第三方代碼。 您可以創建在您的設置中完美運行的東西。 ...

B)這樣做的成本:當然,隨着時間的推移創建和維護自己的解決方案的直接成本(尤其是維護經常被嚴重低估!當然,所有那些“城堡”在他的答案中列出的點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM