2012-03-14 37 views

回答

2

使用接口的想法是允許程序使用任何Map實現。原則上你可能希望稍後用-say-一個TreeMap來替換HashMap,如果程序的其餘部分只假定它是一個Map,那麼這個替換是很簡單的。

1

如果程序員宣稱mapHashMap那麼程序員可能會無意中使用som HashMap特定的方法或字段。然後程序員會被卡在使用HashMap

事實上,程序員可以很容易地將其從HashMap更改爲任何其他種類的Map

+0

我不認爲有任何HashMap的具體方法,我不認爲有任何暴露的領域。集合接口的實現主要根據其性能語言不同而不同。 – 2012-03-14 22:27:59

0

你不能實例化一個接口。這是一個契約,它說「我在這裏使用的任何類將實現在接口中聲明的方法」。這是java解決缺乏多重繼承的方法。

@Mathias和@emory對於通常以Map = new HashMap這種方式完成的原因是正確的,無論使用何種類創建實際的地圖,都可以通過TreeMap,HashMap,BidiMap或其他方式自由實現。