Pair Class in Java

In C++, we have std::pair in the utility library which is of immense use if we want to keep a pair of values together. We were looking for an equivalent class for pair in Java but Pair class did not come into existence till Java 7. JavaFX 2.2 has the javafx.util.Pair class which can be used to store a pair. We need to store the values into Pair using the parameterized constructor provided by the javafx.util.Pair class.
 
Note : Note that the <Key, Value> pair used in HashMap/TreeMap. Here, <Key, Value> simply refers to a pair of values that are stored together.
 

Methods provided by the javafx.util.Pair class

  • Pair (K key, V value) : Creates a new pair
  • boolean equals() : It is used to compare two pair objects. It does a deep comparison, i.e., it compares on the basic of the values (<Key, Value>) which are stored in the pair objects.
     
    Example:

     Pair p1 = new Pair(3,4);
     Pair p2 = new Pair(3,4);
     Pair p3 = new Pair(4,4);
     System.out.println(p1.equals(p2) + “ ” + p2.equals(p3));
    

    Output:
    true false

  •  

  • String toString() : This method will return the String representation of the Pair.
  • K getKey() : It returns key for the pair.
  • V getValue() : It returns value for the pair.
  • int hashCode() : Generate a hash code for the Pair.
  •  



    Let us have a look at the following problem.
    Problem Statement : We are given names of n students with their corresponding scores obtained in a quiz. We need to find the student with maximum score in the class.

    Note : You need to have Java 8 installed on your machine in order to run the below program.

    /* Java program to find a Pair which has maximum score*/
    import javafx.util.Pair;
    import java.util.ArrayList;
    
    class Test
    {
        /* This method returns a Pair which hasmaximum score*/
        public static Pair <String,Integer>
                  getMaximum(ArrayList < Pair <String,Integer> > l)
        {
            // Assign minimum value initially
            int max = Integer.MIN_VALUE;
    
            // Pair to store the maximum marks of a 
            // student with its name
            Pair <String, Integer> ans = 
                             new Pair <String, Integer> ("", 0);
    
            // Using for each loop to iterate array of 
            // Pair Objects
            for (Pair <String,Integer> temp : l)
            {
                // Get the score of Student
                int val = temp.getValue();
    
                // Check if it is greater than the previous 
                // maximum marks
                if (val > max)
                {
                    max = val;  // update maximum
                    ans = temp; // update the Pair
                }
            }
            return ans;
        }
    
        // Driver method to test above method
        public static void main (String[] args)
        {
             int n = 5;//Number of Students
    
            //Create an Array List
            ArrayList <Pair <String,Integer> > l =
                      new ArrayList <Pair <String,Integer> > ();
    
            /*  Create pair of name of student  with their
                corresponding score and insert into the
                Arraylist */
            l.add(new Pair <String,Integer> ("Student A", 90));
            l.add(new Pair <String,Integer> ("Student B", 54));
            l.add(new Pair <String,Integer> ("Student C", 99));
            l.add(new Pair <String,Integer> ("Student D", 88));
            l.add(new Pair <String,Integer> ("Student E", 89));
    
            // get the Pair which has maximum value
            Pair <String,Integer> ans = getMaximum(l);
    
            System.out.println(ans.getKey() + " is top scorer " +
                              "with score of " + ans.getValue());
        }
    }
    

    Output :

    Student C is top scorer with score of 99

    Note: The above program might not run in an online IDE, please use an offline compiler.

     
    References : https://docs.oracle.com/javafx/2/api/javafx/util/Pair.html
     

    This article is contributed by Chirag Agarwal. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above



    My Personal Notes arrow_drop_up



    Practice Tags :
    Article Tags :
    Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.

Recommended Posts:



1 Average Difficulty : 1/5.0
Based on 2 vote(s)






User Actions