# Sort an array of pairs using Java Pair and Comparator

Given an array of pairs of integers. The task is to sort the array with respect to second element of the pair.

Examples:

```Input: [(1, 2), (3, 5), (2, 6), (1, 7)]
Output: [(1, 2), (3, 5), (2, 6), (1, 7)]

Input: [(10, 20), (20, 30), (5, 6), (2, 5)]
Output: [(2, 5), (5, 6), (10, 20), (20, 30)]
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach:

• Store the pairs in an array using a user defined Pair class.
• Override the comparator method to sort the array according to the first element.
• Sort the array according to the first element.

Below is the implementation of above approach:

 `// Java code to sort the array ` `// according to second element ` `import` `java.io.*; ` `import` `java.util.*; ` ` `  `// User defined Pair class ` `class` `Pair { ` `    ``int` `x; ` `    ``int` `y; ` ` `  `    ``// Constructor ` `public` `Pair(``int` `x, ``int` `y) ` `    ``{ ` `        ``this``.x = x; ` `        ``this``.y = y; ` `    ``} ` `} ` ` `  `// class to define user defined conparator ` `class` `Compare { ` ` `  `    ``static` `void` `compare(Pair arr[], ``int` `n) ` `    ``{ ` `        ``// Comparator to sort the pair according to second element ` `        ``Arrays.sort(arr, ``new` `Comparator() { ` `            ``@Override` `public` `int` `compare(Pair p1, Pair p2) ` `            ``{ ` `                ``return` `p1.y - p2.y; ` `            ``} ` `        ``}); ` ` `  `        ``for` `(``int` `i = ``0``; i < n; i++) { ` `            ``System.out.print(arr[i].x + ``" "` `+ arr[i].y + ``" "``); ` `        ``} ` `        ``System.out.println(); ` `    ``} ` `} ` ` `  `// Driver class ` `class` `GFG { ` ` `  `    ``// Driver code ` `public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``Scanner sc = ``new` `Scanner(System.in); ` ` `  `        ``// length of array ` `        ``int` `n = ``5``; ` ` `  `        ``// Array of Pair ` `        ``Pair arr[] = ``new` `Pair[n]; ` ` `  `        ``arr[``0``] = ``new` `Pair(``10``, ``20``); ` `        ``arr[``1``] = ``new` `Pair(``1``, ``2``); ` `        ``arr[``2``] = ``new` `Pair(``3``, ``1``); ` `        ``arr[``3``] = ``new` `Pair(``10``, ``8``); ` `        ``arr[``4``] = ``new` `Pair(``4``, ``3``); ` ` `  `        ``Compare obj = ``new` `Compare(); ` ` `  `        ``obj.compare(arr, n); ` `    ``} ` `} `

Output:

```3 1 1 2 4 3 10 8 10 20
```

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.