First you should modify the AdultStudent class by writing an accessor for the major of the AdultStudent object: public String getMajor()
Next you need to write a driver program for the AdultStudent class. It will use the Arrays class for printing and sorting. In particular, it must:
Have a static constant for the number of AdultStudent objects in the array called MAX.
Create an array of MAX AdultStudent objects and fill them with appropriate test values using calls to the default or parameterized constructor of the AdultStudent class.
Print the filled AdultStudent array using the toString() method of the Arrays class. Do NOT use a loop.
Sort the AdultStudent objects using a call to Arays.sort() that uses the Comparable interface.
Print the newly sorted AdultStudent array using the toString() method of the Arrays class. Do NOT use a loop.
Sort the AdultStudents using a call to Arrays.sort() with a lambda expression. The lambda expression will sort based on the major of the AdultStudent. This lambda expression must use the major accessor that you wrote in the first step of the assignment. Strings should be compared using the compareTo() method of the String class.
Print the newly sorted AdultStudent array using the toString() method of the Arrays class. Do NOT use a loop.
package ist;
import java.time.LocalDate;
public class AdultStudent extends Person implements Comparable<AdultStudent>{
private String major;
private final int AGE_MAJ = 18;
public AdultStudent() {
LocalDate today = LocalDate.now();
name = “default”;
bYear = today.getYear() – AGE_MAJ;
major = “computer science”;
}
public AdultStudent(String n, int y, String m) {
LocalDate today = LocalDate.now();
int year = today.getYear();
if (y <= year – AGE_MAJ)
bYear = y;
else bYear = year – AGE_MAJ;
name = n;
major = m;
}
// Write this method
public String getMajor() {
// A stub — remove when you write the method
return “”;
}
public int compareTo(AdultStudent other) {
return age() – other.age();
}
public String toString() {
return super.toString() + “, major: ” + major;
}
}
test
package ist;
import java.time.LocalDate;
public class Person {
protected int bYear;
protected String name;
public Person() {
LocalDate today = LocalDate.now();
name = “default”;
bYear = today.getYear();
}
public Person(String initName, int birthYear) {
name = initName;
bYear = birthYear;
}
public int age() {
LocalDate today = LocalDate.now();
return today.getYear() – bYear;
}
public String toString() {
return String.format(“Name: %s, birth year: %d”, name, bYear);
}
}
Expert Answer
import java.time.LocalDate;
public class AdultStudent extends Person implements Comparable<AdultStudent>{
private String major;
private final int AGE_MAJ = 18;
public AdultStudent() {
LocalDate today = LocalDate.now();
name = “default”;
bYear = today.getYear() – AGE_MAJ;
major = “computer science”;
}
public AdultStudent(String n, int y, String m) {
LocalDate today = LocalDate.now();
int year = today.getYear();
if (y <= year – AGE_MAJ)
bYear = y;
else bYear = year – AGE_MAJ;
name = n;
major = m;
}
// Write this method
public String getMajor() {
// A stub — remove when you write the method
return major;
}
public int compareTo(AdultStudent other) {
return age() – other.age();
}
public String toString() {
return super.toString() + “, major: ” + major;
}
}
———————-
import java.time.LocalDate;
public class Person {
protected int bYear;
protected String name;
public Person() {
LocalDate today = LocalDate.now();
name = “default”;
bYear = today.getYear();
}
public Person(String initName, int birthYear) {
name = initName;
bYear = birthYear;
}
public int age() {
LocalDate today = LocalDate.now();
return today.getYear() – bYear;
}
public String toString() {
return String.format(“Name: %s, birth year: %d”, name, bYear);
}
}
————————–
import java.util.Arrays;
import java.util.Comparator;
public class Driver
{
static final int MAX=5;
public static void main(String args[])
{
AdultStudent students[]=new AdultStudent[MAX];
AdultStudent a=new AdultStudent(“a”,1994,”physics”);
AdultStudent b=new AdultStudent(“b”,1993,”cs”);
AdultStudent c=new AdultStudent(“c”,1992,”maths”);
AdultStudent d=new AdultStudent(“d”,1991,”physics”);
AdultStudent e=new AdultStudent(“e”,1995,”physics”);
students[0]=a;
students[1]=b;
students[2]=c;
students[3]=d;
students[4]=e;
System.out.println(Arrays.toString(students));
Arrays.sort(students);
System.out.println();
System.out.println(Arrays.toString(students));
System.out.println();
Arrays.sort(students,(AdultStudent j, AdultStudent k) -> j.getMajor().compareTo(k.getMajor()));
System.out.println(Arrays.toString(students));
}
}
——————————-