Answer:
See explaination
Step-by-step explanation:
The program code
import java.util.ArrayList;
public class Main
{
public static void main(String[] args)
{
ArrayList<AirlineTicket> tickets = new ArrayList<AirlineTicket>();
//This creates a randomized list of passengers
addPassengers(tickets);
for(AirlineTicket elem: tickets)
{
System.out.println(elem);
}
//This creates a TicketOrganizer object
TicketOrganizer ticketOrganizer = new TicketOrganizer(tickets);
//These are the methods of the ticketOrganizer in action
System.out.println("\\Passengers Ordered by Boarding Group:");
ticketOrganizer.printPassengersByBoardingGroup();
System.out.println("\\Passengers in line who can board together:");
ticketOrganizer.canBoardTogether();
}
//Do not touch this method! It is adding random passengers to the AirlineTicket array
public static void addPassengers(ArrayList<AirlineTicket> tickets)
{
String[] seats = {"A","B","C","D","E","F"};
for(int index = 0; index< 15; index++)
{
int random = (int)(Math.random() * 5);
AirlineTicket ticket = new AirlineTicket("Passenger " + (index+1), seats[random], ((int)(Math.random()*5)+1), ((int)(Math.random()*8)+1));
tickets.add(ticket);
}
}
}
class TicketOrganizer
{
private ArrayList<AirlineTicket> tickets ;
//constructor with parameter as an arraylist of AirlineTicket
public TicketOrganizer(ArrayList<AirlineTicket> tickets)
{
this.tickets = tickets;
}
//methhods to return the arraylist of airlines
public ArrayList<AirlineTicket> getTickets()
{ //re-organize the ticket first
ArrayList<AirlineTicket> tickets_organized = new ArrayList<AirlineTicket>();
for(int i=1; i<=5; i++)
{
for(AirlineTicket ticket: tickets)
{
if(ticket.getBoardingGroup() == i)
{
tickets_organized.add(ticket);
}
}
}
return tickets_organized;
}
//print the tickets based on boardingGroup
public void printPassengersByBoardingGroup()
{
int count = 0;
for(int i=1; i<=5; i++)
{
System.out.println("Boarding Group " + i + ":");
for(AirlineTicket ticket : tickets)
{
if(ticket.getBoardingGroup() == i)
{
System.out.println("Passenger " + ticket.getName());
}
}
}
See attachment for sample output