This assignment requires one project with two classes. Class Employee Class Employee- I will attach the code for this: //Import the required packages. import java.text.DecimalFormat; import java.text.NumberFormat; //Define the employee class. class Employee { //Define the data members. private String id, lastName, firstName; private int salary; //Create the constructor. public Employee(String id, String lastName, String firstName, int salary) { this.id = id; this.lastName = lastName; this.firstName = firstName; this.salary = salary; } //Define the getter methods. public String getId() { return id; } public String getLastName() { return lastName; } public String getFirstName() { return firstName; } public int getSalary() { return salary; } //Define the method to return the employee details. @Override public String toString() { //Use number format and decimal format //to format the salary to desired output. NumberFormat nfm = NumberFormat.getCurrencyInstance(); String pt = ((DecimalFormat) nfm).toPattern(); String npt = pt.replace("\u00A4", "").trim(); NumberFormat nfm2 = new DecimalFormat(npt); nfm2.setMinimumFractionDigits(0); //Return the attributes with message. return "ID " + id + ":" + lastName + ", " + firstName + ", salary $" + nfm2.format(salary); } } Executable Class (I will post beleow the array I already created) //Import the required packages. import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.LinkedList; import java.util.ListIterator; //Define the class. public class Executable { // Define the main method. public static void main(String[] args) { //Create an employee array. Employee[] eArr = new Employee[8]; eArr[0] = new Employee("23232", "Baker", "Amy", 100000); eArr[1] = new Employee("56789", "Jones", "Dan", 130000); eArr[2] = new Employee("13579", "Jones", "Pat", 80000); eArr[3] = new Employee("67765", "Jones", "Don", 140000); eArr[4] = new Employee("12345", "Baker", "Tom", 200000); eArr[5] = new Employee("45454", "Perez", "Ava", 105000); eArr[6] = new Employee("24680", "Scott", "Ann", 90000); eArr[7] = new Employee("11111", "Scott", "Bob", 65000); //Create the array list from the employee array. ArrayList eArlist = new ArrayList<>(Arrays.asList(eArr)); System.out.println("Staff Alpha sorted by names\n"); //Create the comparator to sort the array list by last name. Comparator lastName = new Comparator() { @Override public int compare(Employee i, Employee j) { int r = i.getLastName().compareToIgnoreCase(j.getLastName()); if (r != 0) return r; return i.getLastName().compareToIgnoreCase(j.getLastName()); } }; //Create the comparator to sort the array list by first name. Comparator firstName = new Comparator() { @Override public int compare(Employee i, Employee j) { int r = i.getFirstName().compareToIgnoreCase(j.getFirstName()); if (r != 0) return r; return i.getFirstName().compareToIgnoreCase(j.getFirstName()); } }; //Sort the array list by last name and then by first name. Collections.sort(eArlist, lastName.thenComparing(firstName)); //Use lambda with for each to print the array list. eArlist.forEach(i -> System.out.println(i)); System.out.println(); //Print the message. System.out.println("Staff sorted Reverse Alpha\n"); //Sort the array list in reverse order. Collections.sort(eArlist, lastName.thenComparing(firstName).reversed()); //Print the array list. eArlist.forEach(i -> System.out.println(i)); System.out.println(); //Create a link list from the array list. LinkedList llist = new LinkedList<>(eArlist); //Create an iterator for the linked list. ListIterator liter = llist.listIterator(); //Iterate forward without printing. while (liter.hasNext()) { liter.next(); } //Display the message. System.out.println("LinkedList Backward\n"); //Iterate backwards and print the list content. while (liter.hasPrevious()) { System.out.println(liter.previous()); } } } These are the steps that I need help with to be added to the code above: create an array of Employee objects. create an ArrayList of Employee objects from that array. use an enhanced for loop to print all employees as shown in the sample output. create a TreeMap that uses Strings for keys and Employees as values. this TreeMap should map Employee ID numbers to their associated Employees. process the ArrayList to add elements to this map. print all employees in ID # order as shown, but do so using the TreeMap's forEach method and a lambda expression Output should look exactly like this:
This assignment requires one project with two classes.
Class Employee
-
Class Employee- I will attach the code for this:
//Import the required packages.
import java.text.DecimalFormat;
import java.text.NumberFormat;
//Define the employee class.
class Employee {
//Define the data members.
private String id, lastName, firstName;
private int salary;
//Create the constructor.
public Employee(String id, String lastName,
String firstName, int salary) {
this.id = id;
this.lastName = lastName;
this.firstName = firstName;
this.salary = salary;
}
//Define the getter methods.
public String getId() {
return id;
}
public String getLastName() {
return lastName;
}
public String getFirstName() {
return firstName;
}
public int getSalary() {
return salary;
}
//Define the method to return the employee details.
@Override
public String toString() {
//Use number format and decimal format
//to format the salary to desired output.
NumberFormat nfm = NumberFormat.getCurrencyInstance();
String pt = ((DecimalFormat) nfm).toPattern();
String npt = pt.replace("\u00A4", "").trim();
NumberFormat nfm2 = new DecimalFormat(npt);
nfm2.setMinimumFractionDigits(0);
//Return the attributes with message.
return "ID " + id + ":" + lastName + ", " + firstName
+ ", salary $" + nfm2.format(salary);
}
}
Executable Class (I will post beleow the array I already created)
//Import the required packages.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.ListIterator;
//Define the class.
public class Executable {
// Define the main method.
public static void main(String[] args) {
//Create an employee array.
Employee[] eArr = new Employee[8];
eArr[0] = new Employee("23232", "Baker", "Amy", 100000);
eArr[1] = new Employee("56789", "Jones", "Dan", 130000);
eArr[2] = new Employee("13579", "Jones", "Pat", 80000);
eArr[3] = new Employee("67765", "Jones", "Don", 140000);
eArr[4] = new Employee("12345", "Baker", "Tom", 200000);
eArr[5] = new Employee("45454", "Perez", "Ava", 105000);
eArr[6] = new Employee("24680", "Scott", "Ann", 90000);
eArr[7] = new Employee("11111", "Scott", "Bob", 65000);
//Create the array list from the employee array.
ArrayList<Employee> eArlist = new ArrayList<>(Arrays.asList(eArr));
System.out.println("Staff Alpha sorted by names\n");
//Create the comparator to sort the array list by last name.
Comparator<Employee> lastName = new Comparator<Employee>() {
@Override
public int compare(Employee i, Employee j) {
int r = i.getLastName().compareToIgnoreCase(j.getLastName());
if (r != 0)
return r;
return i.getLastName().compareToIgnoreCase(j.getLastName());
}
};
//Create the comparator to sort the array list by first name.
Comparator<Employee> firstName = new Comparator<Employee>() {
@Override
public int compare(Employee i, Employee j) {
int r = i.getFirstName().compareToIgnoreCase(j.getFirstName());
if (r != 0)
return r;
return i.getFirstName().compareToIgnoreCase(j.getFirstName());
}
};
//Sort the array list by last name and then by first name.
Collections.sort(eArlist, lastName.thenComparing(firstName));
//Use lambda with for each to print the array list.
eArlist.forEach(i -> System.out.println(i));
System.out.println();
//Print the message.
System.out.println("Staff sorted Reverse Alpha\n");
//Sort the array list in reverse order.
Collections.sort(eArlist, lastName.thenComparing(firstName).reversed());
//Print the array list.
eArlist.forEach(i -> System.out.println(i));
System.out.println();
//Create a link list from the array list.
LinkedList<Employee> llist = new LinkedList<>(eArlist);
//Create an iterator for the linked list.
ListIterator<Employee> liter = llist.listIterator();
//Iterate forward without printing.
while (liter.hasNext()) {
liter.next();
}
//Display the message.
System.out.println("LinkedList Backward\n");
//Iterate backwards and print the list content.
while (liter.hasPrevious()) {
System.out.println(liter.previous());
}
}
}
These are the steps that I need help with to be added to the code above:
- create an array of Employee objects.
- create an ArrayList of Employee objects from that array.
- use an enhanced for loop to print all employees as shown in the sample output.
- create a TreeMap that uses Strings for keys and Employees as values.
- this TreeMap should map Employee ID numbers to their associated Employees.
- process the ArrayList to add elements to this map.
- print all employees in ID # order as shown, but do so using the TreeMap's forEach method and a lambda expression
Output should look exactly like this:
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 5 images