Module: Core Java Lab7: java.lang and java.util packages Create a class called N
ID: 3626284 • Letter: M
Question
Module: Core JavaLab7: java.lang and java.util packages
Create a class called Name as:
Name
- lastName: String
- firstName: String
+Name(String lastName, String firstName)
+ getLastName(): String
+ setLastName(String lastName): void
+ getFirstName(): String
+ setFirstName(String firstName): void
Write a program with the following requirements:
Creates 10 Name objects with:
? FirstName, LastName are produced randomly from [Oscar, Grouch, John, Lennon, Groucho, Marx, Karl, Marx].
? Ensure that there is no duplicate Name object.
Displays all full name (Name.LastName + Name.FirstName) in ascending order of lastName ( if equals lastName then sort by firstName).
Hint:
• class Name implements Comparable to ordering 2 Name objects.
• override equals(..) method to compare 2 Name objects.
• override toString() method to return full name.
• use Set to ensure no duplicate.
• use Random class to create random value.
• use support class Collections to sort all Name objects.
Explanation / Answer
// Create a class called Name as:
public class Name implements Comparable<Name>
{
// - lastName: String
private String lastName;
// - firstName: String
private String firstName;
// +Name(String lastName, String firstName)
public Name(String lastName, String firstName)
{
this.lastName = lastName;
this.firstName = firstName;
}
// + getLastName(): String
public String getLastName()
{
return lastName;
}
// + setLastName(String lastName): void
public void setLastName(String lastName)
{
this.lastName = lastName;
}
// + getFirstName(): String
public String getFirstName()
{
return firstName;
}
// + setFirstName(String firstName): void
public void setFirstName(String firstName)
{
this.firstName = firstName;
}
// override toString() method to return full name.
public String toString()
{
return firstName+" "+lastName;
}
// override equals(..) method to compare 2 Name objects.
public boolean equals(Object o)
{
Name rhs = (Name)o;
return rhs.firstName.equals(firstName) && rhs.lastName.equals(lastName);
}
// class Name implements Comparable to ordering 2 Name objects.
public int compareTo(Name rhs)
{
if(rhs.lastName.compareTo(lastName) != 0)
return lastName.compareTo(rhs.lastName);
return firstName.compareTo(rhs.firstName);
}
}
import java.util.*;
public class Test
{
// FirstName, LastName are produced randomly from [Oscar, Grouch, John, Lennon, Groucho, Marx, Karl, Marx].
public static final String[] NAMES = new String[]{"Oscar", "Grouch", "John", "Lennon", "Groucho", "Marx", "Karl", "Marx"};
public static void main(String[] args)
{
// use Set to ensure no duplicate.
Set<String> names = new TreeSet<String>();
// Creates 10 Name objects with:
while(names.size() < 10)
names.add(new Name(NAMES[(int)(Math.random()*NAMES.length)], NAMES[(int)(Math.random()*NAMES.length)]));
// Displays all full name (Name.LastName + Name.FirstName) in ascending order of lastName ( if equals lastName then sort by firstName).
for(Name n : names)
System.out.println(n);
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.