I am new to Java 8. I just want to sort by the name. But the condition is: if there are duplicate names then it should be sorted according to age.
For example my input is
tarun  28
arun   29
varun  12
arun   22
and the output should be
arun   22
arun   29
tarun  28
varun  12
But I get something like
varun  12
arun   22
tarun  28
arun   29
Means it's sorted either only by ages or names.
This is the code which is implemented:
POJO class:
class Person {
    String fname;
    int age;
    public Person() {
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getFname() {
        return fname;
    }
    public void setFname(String fname) {
        this.fname = fname;
    }
    public Person(String fname,  int age) {
        this.fname = fname;
        this.age = age;
    }
    @Override
    public String toString() {
        return fname  + age;
    }
}
Test class:
public class Test {
    public static void main(String[] args) {
        List<Person> persons = new ArrayList<>();
        persons.add(new Person("tarun", 28));
        persons.add(new Person("arun", 29));
        persons.add(new Person("varun", 12));
        persons.add(new Person("arun", 22));
        Collections.sort(persons, new Comparator<Person>() {
            @Override
            public int compare(Person t, Person t1) {
                return t.getAge() - t1.getAge();
            }
        });
        System.out.println(persons);
    }
}
 
     
     
     
     
     
     
     
     
     
    