Map<bluh> map1 = new HashMap<bluh>(); web
HashMap<bluh> map2 = new HashMap<bluh>(); 编程
1.灵活性 定义为Map以后更灵活 从此才有可能在须要的时候替换为HashMap以外的其它实现如TreeMap等,同时如Joshua Bloch等大师也倡导面向接口编程 code to interfaceside
2.有得必有失,第一种的tradeoff就是没法调用HashMap特有的方法,也就是存在于Map接口中所定义的方法以外的HashMap本身的方法,固然同时也是HashMap未override的方法this
more to check out this link on StackOverflow:spa
http://stackoverflow.com/questions/1348199/java-hashmap-vs-map-objectscode