Skip to content
the poor coder

Hackerrank Java Comparator Solution

Poor Man
Published
Updated
Reading time
2 min read

Comparators are used to compare two objects. In this challenge, you'll create a comparator and use it to sort an array.

The Player class is provided for you in your editor. It has  fields: a  String and a  integer.

Given an array of  Player objects, write a comparator that sorts them in order of decreasing score; if  or more players have the same score, sort those players alphabetically by name. To do this, you must create a Checker class that implements the Comparator interface, then write an int compare(Player a, Player b) method implementing the Comparator.compare(T o1, T o2) method.

Input Format

Input from stdin is handled by the locked stub code in the Solution class.

The first line contains an integer, , denoting the number of players.
Each of the  subsequent lines contains a player's  and , respectively.

Constraints

  • players can have the same name.
  • Player names consist of lowercase English letters.

Output Format

You are not responsible for printing any output to stdout. The locked stub code in Solution will create a Checker object, use it to sort the Player array, and print each sorted element.

Sample Input

Text
5
amy 100
david 100
heraldo 50
aakansha 75
aleksa 150

Sample Output

Text
aleksa 150
amy 100
david 100
aakansha 75
heraldo 50

Solution in java8#

Approach 1.

Python


class Checker implements Comparator<Player>{
    @Override
    public int compare (Player p1,Player p2){
        if(p1.score==p2.score){
            return p1.name.compareTo(p2.name);
        }
        else{
            return p2.score-p1.score;
        }
    }
}

Approach 2.

Python


class Checker implements Comparator {
    public int compare(Object o1,  Object o2) {
        Player p1 = (Player) o1;
        Player p2 = (Player) o2;
        if (p2.score - p1.score == 0) return p1.name.compareTo(p2.name);
        return p2.score - p1.score;
    }
}

Approach 3.

Python


// Write your Checker class here
class Checker implements Comparator<Player> {
    @Override
    public int compare(Player o1, Player o2) {
        if (o1.score == o2.score) {
            return o1.name.compareTo(o2.name);
        }
        return o2.score - o1.score;
    }
}

Keep going

2020

Hackerrank Java Sort Solution

You are given a list of student information: ID, FirstName, and CGPA. Your task is to rearrange them according to their CGPA in decreasing order. If two student have the same CGPA, then arrange them according to their…

ESC