Win a copy of The Little Book of Impediments (e-book only) this week in the Agile and Other Processes forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Why developer use "Map m= new HashMap()" or "List l = new ArrayList()"?

 
Rahul Sud
Greenhorn
Posts: 25
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Techies,

Sorry if this question is repeated ...I have searched but havent got this one...

Why developer use "Map m= new HashMap()" or "List l = new ArrayList()" in place of HashMap hm= new HashMap()" or "ArrayList al = new ArrayList()"

According to me Map or List is interface and it is hidding the implementation from client.


Please give your inputs and share your knowledge for this question.


Thank You,
Rahul
 
Jesper de Jong
Java Cowboy
Saloon Keeper
Posts: 15641
47
Android IntelliJ IDE Java Scala Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Have a look at this article: Program to an interface, not an implementation

The main reason to do this is to decouple your code from a specific implementation of the interface. By writing your code like this:

then the rest of your code only knows that data is a Map<String, Object>, which is good, because it you can now easily change to a different implementation of interface Map if necessary. You'd only need to change that one line of code, for example to:

For the rest of your program, nothing changes - data is still a Map<String, Object>.

If you would have written:

then changing it would have been much harder, because the rest of your code might have used methods that are specific to HashMap.
 
Rahul Sud
Greenhorn
Posts: 25
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Jesper for good explanation
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic