Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between Pair and Hashmap?

What is the necessity to introduce Pair class when Hashmap can do the same job?

I see Pair being introduced to Java version 8

like image 673
Mani Avatar asked Jul 30 '17 04:07

Mani


2 Answers

Your choice of which class to use is not just a message to your computer. It's also a message to future developers - people who will maintain your code in the future, or even you yourself in a few months time.

By choosing whether to declare a particular variable as either HashMap or Pair, you're telling those future developers something. It's EITHER

This variable references some kind of map, which uses a hash algorithm for fast retrieval.

OR

This variable references a pair of values.

That will help the future developers to understand what your code is doing. Whereas you can certainly use a HashMap with a single entry instead of a Pair, it would be a very strange thing to do, and it would send entirely the wrong message to the future maintainers of your code.

like image 189
Dawood ibn Kareem Avatar answered Oct 25 '22 16:10

Dawood ibn Kareem


A pair is basically a convenient way of associating a simple key to a value. Maps do the same thing to store key-value pairs but maps stores a collection of pairs and operate them as a whole.

Number of times we have a requirement where a key-value pair shall exist on its own, for instance:

  • A key-value pair needs to be passed to a method as an argument, Or
  • A method needs to return just two values in form of a pair

Map complicates the things when we just need a single pair of key-value.

like image 33
db07 Avatar answered Oct 25 '22 18:10

db07