Java’s “pair” class was introduced in version 7 to create an easy way of returning two values from a method. You can certainly accomplish the same result by writing extra code, though using this existing class will be quicker and easier than implementing your own workaround.
The core use of the pair class in Java is to hold a pair of values. This may sound similar to a HashMap, but this just refers to pairs of values that are stored together, not specifically keys mapped to values.
You might use this class for many reasons, such as working with coordinates or any other circumstance where two return values are needed from a method. Whether it’s working with a graph or something else involving pairs of values, this class has got you covered.
What do pairs in Java do?
As the name suggests, pairs in Java are a way to keep pairs of values together. In a way, it is like a hashmap, even down to the way that values are accessed via methods. However, the big difference here is that it can refer to any two abstract values instead of a key specifically being mapped to a value.
These paired values can then be compared to other paired values to check if they are equal. This means the values in the pairs are compared. Then, a true or false (boolean) result is returned depending on if both pairs of values are the same or not.
This can be extremely useful for any website that does math on a 2d grid, with use cases ranging from calculators to video games. Anything that uses (x,y) coordinates on a 2d plane can gain an advantage from using this class.
Pairs can even help keep track of your mouse on the screen, considering it is nothing more than a point on a 2d plane.
Java Pairs in Action
Let’s go over a few examples of pairs in action, so you can see the concept in action. Take a look at Desmos, a popular website for graphing calculations.
As both the answer and inputs are a pair of values, the pair class in Java would be perfect for the job. If you wanted to check if the points were equal or to do more complex math than a simple midpoint formula, that could be more easily accomplished with Pairs at the heart of the structure.
With pairs, there is less to keep track of when compared to a workaround like arrays. In the case of arrays as a workaround, you would have to mentally note the index used in the array, or create a definition for that indexed element, which would be more code to write and maintain.
So, it turns out that computers are really nothing more than fancy calculators that can also run video games. Old School Runescape (or OSRS for short) is one particularly popular game that uses a coordinate system and was made with Java.
Old School Runescape is a popular online video game that was originally browser-based and written in Java. Support for this game extended well past the release date of Java Version 7 (when pairs were introduced to Java). It’s very likely that this game uses the pairs class in some way every single time you click to walk around or interact with the in-game world.
This is personally my favorite example of Java pairs in action, and it technically was being done on a website up until 2016, when it was then replaced with a standalone client.
How to Use Pairs in Java
If you wanted to revisit that coordinate example from earlier, it would be straightforward to do so. Look at the example code below. This code stores the coordinates (2, 1) and (4, 2) into instances of the pair class. It then takes those values out again to perform some basic math.
- First, you will want to import the pairs class with the following line of code. Without this, Java will yell at you, as it doesn’t understand what you’re talking about when you try to reference this class.
- Next, you'll want to create instances of the pair class using whatever data is necessary. In this case, coordinates could be integers. As the midpoint can also be a decimal number, using the Float data type here is wise to avoid loss of precision during calculations.
- Grabbing the values from the pairs might cause your eyebrow to raise. Doesn’t this format look very similar to the HashMap data structure?
- Now, find the midpoint using these coordinates. In plain English, the way to do this is by adding the associated coordinates together, then dividing the result by two.
- Once the x and y midpoints have been calculated, it’s time to store the answer in a pair object.
- Finally, display the result in your terminal to ensure the math is accurate. This example should give you a result of 3.0 and 1.5.
If you had trouble getting this import to work in VScode, watch this video in order to help get your javaFX environment set up. Once that’s done, this code should work without the Java compiler bullying you.
There is a difference here. .getKey() will grab the first value from the pair, and .getValue() will get the second. Remember, these are both just values. There is no real key mapped to a value here.
So, you will add the x coordinates from each original coordinate together, then divide the result by two to get the x coordinate for the midpoint coordinate. Repeat the process with the y coordinates as well.
Getting Started With Java Pairs
That’s it! Once you get everything set up, using pair in Java is extremely straightforward and even uses methods you are likely already familiar with. Now, start coordinating information with pairs.