Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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 interface so that the

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

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

DB2 11 The Database For Big Data And Analytics

Authors: Cristian Molaro, Surekha Parekh, Terry Purcell, Julian Stuhler

1st Edition

1583473858, 978-1583473856

More Books

Students also viewed these Databases questions

Question

2. Discuss various aspects of the training design process.

Answered: 1 week ago