1. 程式人生 > >Map map = new HashMap()與HashMap map = new HashMap()

Map map = new HashMap()與HashMap map = new HashMap()

Map map = new HashMap();這個其實你定義的是一個介面,你呼叫這個介面來實現你要完成的動作,這樣別人直接用你這個介面就可以了,而不用關心你具體是怎麼實現這個介面的,假如以後有變動的話,你不用在去管這個介面,只去改下你的實現類就可以了,方便維護,隔離性強。

HashMap map = new HashMap();而這個你定義的就是一個實現類,你把這個實現類給別人用,在出現問題和改動的話,那麼程式就無法執行,凡是用到這個類的地方都要修改,維護起來很麻煩,而上面的介面,你只需要改你實現這個介面的實現類就可以了。Map是介面,HashMap是Map的一種實現。介面不能被例項化。

Map map=new HashMap(); 就是將map例項化成一個HashMap。

這樣做的好處是呼叫者不需要知道map具體的實現,map介面與具體實現的對映java幫你做了。

打個比方,你是一個頭頭,手下有幾個人:張三,李四等等。你需要手下做一件事情,你關心的是有沒有人做,而不關心到底是誰去做,你只需要喊一聲:“來人!”

具體的是哪個人進來幫你做事無所謂。

如果說這樣寫: HashMap map = new HashMap();

就相當於你指定要張三做事:“來張三!”