Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

EASY TASK IN JAVA: Steps: • Create a new project in Eclipse • Add three classes:

ID: 3680458 • Letter: E

Question

EASY TASK IN JAVA:

Steps:
• Create a new project in Eclipse
• Add three classes:
1. Person (provided)
2. PersonFirstNameComparator (provided)
3. PersonTester
Tasks:
Using a main method within PersonTester:
1. Instantiate an ArrayList<Person> but reference it using List<Person>
2. Add three Person objects to the ArrayList you created in task 1
3. Use a loop to print the three person objects on screen, before sorting
4. Use Collections.sort() with the List and the Comparator provided to sort the Person objects by FirstName
5. Use a loop to print the three person objects on screen, after sorting
Bonus: Define 2 Comparators one to sort by Person last name, a second for age. Then demonstrate using them.

Class Person:

public class Person {
private String firstName;
private String lastName;
private int age;
public Person(String firstName, String lastName, int age){
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
public String getFirstName(){ return firstName; }
public void setFirstName(String firstName){this.firstName = firstName;}
public String getLastName(){return lastName;}
public void setLastName(String lastName){this.lastName = lastName;}
public int getAge(){return age;}
public void setAge(int age){this.age = age;}
@Override public String toString(){
return String.format("%s %s %d", firstName, lastName, age);
}
}
Class PersonFirstNameComparator:
import java.util.Comparator;
public class PersonFirstNameComparator implements Comparator<Person> {
public int compare(Person p1, Person p2){
return p1.getFirstName().compareTo(p2.getFirstName());
}
}

Sample Program Output:

Before sorting:(firstName, lastName, age)
aaa bbb 1
xyz abc 2
kyj lmn 3
After sorting:(firstName, lastName, age)
aaa bbb 1
kyj lmn 3
xyz abc 2

Explanation / Answer

Hi, Pleasse find the below classes implemented as per your requirement.

PersonTester.java :

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class PersonTester {

   /**
   * @param args
   */
   public static void main(String[] args) {
       // TODO Auto-generated method stub
       List<Person> list = new ArrayList<Person>();
       Person p1 = new Person("aaa","bbb",1);
       Person p2 = new Person("xyz","abc",3);
       Person p3 = new Person("kyj","lmn",2);
       list.add(p1);
       list.add(p2);
       list.add(p3);
       System.out.println("Before sorting:(firstName, lastName, age)");
       for(int i=0; i<list.size(); i++){
           Person p = list.get(i);
           System.out.println(p.getFirstName()+" "+p.getLastName()+" "+p.getAge());
       }
       PersonFirstNameComparator firstName = new PersonFirstNameComparator();
       Collections.sort(list, firstName);

       System.out.println("After sorting by First Name:(firstName, lastName, age)");
       for(int i=0; i<list.size(); i++){
           Person p = list.get(i);
           System.out.println(p.getFirstName()+" "+p.getLastName()+" "+p.getAge());
       }  
       PersonLastNameComparator lastName = new PersonLastNameComparator();
       Collections.sort(list, lastName);

       System.out.println("After sorting by Last Name:(firstName, lastName, age)");
       for(int i=0; i<list.size(); i++){
           Person p = list.get(i);
           System.out.println(p.getFirstName()+" "+p.getLastName()+" "+p.getAge());
       }
       PersonAgeComparator age = new PersonAgeComparator();
       Collections.sort(list, age);

       System.out.println("After sorting by Age:(firstName, lastName, age)");
       for(int i=0; i<list.size(); i++){
           Person p = list.get(i);
           System.out.println(p.getFirstName()+" "+p.getLastName()+" "+p.getAge());
       }      
   }

}

PersonLastNameComparator.java :

import java.util.Comparator;
   public class PersonLastNameComparator implements Comparator<Person> {
   public int compare(Person p1, Person p2){
   return p1.getLastName().compareTo(p2.getLastName());
   }
   }

PersonAgeComparator.java :

import java.util.Comparator;
   public class PersonAgeComparator implements Comparator<Person> {
   public int compare(Person p1, Person p2){
   return p1.getAge() - p2.getAge();
   }
   }

Output:

Before sorting:(firstName, lastName, age)
aaa bbb 1
xyz abc 3
kyj lmn 2
After sorting by First Name:(firstName, lastName, age)
aaa bbb 1
kyj lmn 2
xyz abc 3
After sorting by Last Name:(firstName, lastName, age)
xyz abc 3
aaa bbb 1
kyj lmn 2
After sorting by Age:(firstName, lastName, age)
aaa bbb 1
kyj lmn 2
xyz abc 3