我正在學習Java集合API和感覺我有基礎知識有很好的理解,但我從來沒有明白爲什麼這個標準API不包括圖實現。這三個基類很容易理解(列表,設置和映射),並且它們在API中的所有實現都是直接且一致的。爲什麼Java Collections API不包含Graph實現?
考慮到圖表出現的頻率作爲模擬給定問題的潛在方式,這對我來說沒有任何意義(它可能存在於API中,並且我不是在正確的位置)。 Steve Yegge在他的一篇博客文章中建議,程序員在攻擊問題時應首先考慮圖形,如果問題域不適合自然地適合該數據結構,那麼只能考慮替代結構。
我的第一個猜測是,有代表圖沒有統一的辦法,或者說它們的接口可能不足以爲通用的API實現有用?但是,如果你帶下來的圖形它的基本組件(頂點和一組連接的部分或全部頂點的邊緣),並考慮圖表通常構造(如addVertex(V)和insertEdge方法途徑(V1,V2) )似乎一個普通的圖形實現將是可能的和有用的。
感謝您幫助我更好地理解這種。
Java API充滿了漏洞。這不需要成爲他們的理由。 – skaffman 2010-06-05 22:47:12
Java SE API僅提供* basic * API以進一步構建。這就是爲什麼存在許多更具體/方便的「第三方」API,您可以在Java SE API上使用它。 – BalusC 2010-06-05 22:49:45