Question
import java.util.Arrays; import java.util.Comparator; import java.util.ArrayList; /** Testing the Person class with two Comparators - one for sorting by name and for sorting by age
import java.util.Arrays;
import java.util.Comparator;
import java.util.ArrayList;
/**
Testing the Person class with two Comparators - one for sorting by name and for sorting by age
*/
public class PersonSorter
{
public static void main(String[] args)
{
Person[] persons = {
new Person("Elvis", "Goodyear", 56),
new Person("Stanley", "Clark", 8),
new Person("Jane", "Graff", 16),
new Person("Nancy", "Goodyear", 69),
new Person("Alice", "Goodyear", 100)
} ;
System.out.println("Initial Order:");
for (int i=0; i<4; i++) {
Person person = persons[i];
String lastName = person.getLastName();
String firstName = person.getFirstName();
int age = person.getAge();
System.out.println(lastName + ", " + firstName + ". Age:" + age);
}
System.out.println();
System.out.println("Sorted by name (alphabetically):");
//-----------Start below here. To do: approximate lines of code = 6
// ToDo create a simple (inner) class that implements the Comparator interface
// to sort two person objects by name
// compare last name alphabetically. If they are equal then compare first names
// Hint: make use of the class String compareTo() method to compare name strings
// call Array.sort with two parameters - one passing in the array of persons
// and one passing in an object of the inner class
//-----------------End here. Please do not remove this comment. Reminder: no changes outside the todo regions.
for (int i=0; i<4; i++) {
Person person = persons[i];
String lastName = person.getLastName();
String firstName = person.getFirstName();
int age = person.getAge();
System.out.println(lastName + ", " + firstName + ". Age:" + age);
}
System.out.println("Expected: Clark, Stanley. Age:8 Goodyear, Alice. Age:100 Goodyear, Elvis. Age:56 Goodyear, Nancy. Age:69");
System.out.println();
System.out.println("Sorted by age (youngest to oldest):");
//-----------Start below here. To do: approximate lines of code = 4
// ToDo create a simple (inner) class that implements the Comparator interface
// to sort two person objects by age (youngest to oldest)
// call Array.sort with two parameters - one passing in the array of persons
// and one passing in an object of the inner class
//-----------------End here. Please do not remove this comment. Reminder: no changes outside the todo regions.
for (int i=0; i<4; i++) {
Person person = persons[i];
String lastName = person.getLastName();
String firstName = person.getFirstName();
int age = person.getAge();
System.out.println(lastName + ", " + firstName + ". Age:" + age);
}
System.out.println("Expected: Clark, Stanley. Age:8 Graff, Jane. Age:16 Goodyear, Elvis. Age:56 Goodyear, Nancy. Age:69");
}
}
/**
This class Person models a person object that has a name and age.
Notice there is no constructor other than the default one.
You are setting up the Comparable
sorting will be from young to old (ascending).
*/
class Person
{
private String firstName;
private String lastName;
private int age;
/**
Initializes firstName, lastName and age
@param first the first name
@param last the last name
@param years the age in years
*/
public Person(String first, String last, int years)
{
firstName = first ; lastName = last ; age = years ;
}
/**
Accesses the first name
@return firstName
*/
public String getFirstName() {
return firstName;
}
/**
Sets the first name
@param firstName the new first name
*/
public void setFirstName(String firstName) {
this.firstName = firstName;
}
/**
Accesses the last name
@return lastName
*/
public String getLastName() {
return lastName;
}
/**
Sets the last name
@param lastName the new value.
*/
public void setLastName(String lastName) {
this.lastName = lastName;
}
/**
Accesses the first age
@return age
*/
public int getAge() {
return age;
}
/**
Sets the age
@param age the new age
*/
public void setAge(int age) {
this.age = age;
}
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started