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
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.