fork download
  1. import java.util.ArrayList;
  2.  
  3. public class Main
  4. {
  5. public static void main(String[] args)
  6. {
  7. ArrayList<AirlineTicket> tickets = new ArrayList<AirlineTicket>();
  8. //This creates a randomized list of passengers
  9. addPassengers(tickets);
  10. for(AirlineTicket elem: tickets)
  11. {
  12. System.out.println(elem);
  13. }
  14. //This creates a TicketOrganizer object
  15. TicketOrganizer ticketOrganizer = new TicketOrganizer(tickets);
  16.  
  17. //These are the methods of the ticketOrganizer in action
  18. System.out.println("\nPassengers Ordered by Boarding Group:");
  19. ticketOrganizer.printPassengersByBoardingGroup();
  20. System.out.println("\nPassengers in line who can board together:");
  21. ticketOrganizer.canBoardTogether();
  22. }
  23.  
  24. //Do not touch this method! It is adding random passengers to the AirlineTicket array
  25. public static void addPassengers(ArrayList<AirlineTicket> tickets)
  26. {
  27. String[] seats = {"A","B","C","D","E","F"};
  28. for(int index = 0; index< 15; index++)
  29. {
  30. int random = (int)(Math.random() * 5);
  31. AirlineTicket ticket = new AirlineTicket("Passenger " + (index+1), seats[random], ((int)(Math.random()*5)+1), ((int)(Math.random()*8)+1));
  32. tickets.add(ticket);
  33. }
  34. }
  35.  
  36. }
  37.  
  38. class TicketOrganizer
  39. {
  40. private ArrayList<AirlineTicket> tickets ;
  41.  
  42. //constructor with parameter as an arraylist of AirlineTicket
  43. public TicketOrganizer(ArrayList<AirlineTicket> tickets)
  44. {
  45.  
  46. this.tickets = tickets;
  47.  
  48. }
  49.  
  50. //methhods to return the arraylist of airlines
  51. public ArrayList<AirlineTicket> getTickets()
  52. { //re-organize the ticket first
  53. ArrayList<AirlineTicket> tickets_organized = new ArrayList<AirlineTicket>();
  54. for(int i=1; i<=5; i++)
  55. {
  56. for(AirlineTicket ticket: tickets)
  57. {
  58. if(ticket.getBoardingGroup() == i)
  59. {
  60. tickets_organized.add(ticket);
  61. }
  62. }
  63. }
  64. return tickets_organized;
  65. }
  66.  
  67. //print the tickets based on boardingGroup
  68. public void printPassengersByBoardingGroup()
  69. {
  70. int count = 0;
  71.  
  72. for(int i=1; i<=5; i++)
  73. {
  74. System.out.println("Boarding Group " + i + ":");
  75.  
  76. for(AirlineTicket ticket : tickets)
  77. {
  78. if(ticket.getBoardingGroup() == i)
  79. {
  80. System.out.println("Passenger " + ticket.getName());
  81. }
  82. }
  83. }
  84. }
  85.  
  86. //check if two persons can sit together
  87. public void canBoardTogether()
  88. {
  89.  
  90. for(int i=0; i<15; i++)
  91. {
  92. String str = "Passenger "+ (i + 1) +" can board with Passengers";
  93. for(int j=i+1; j<14; j++)
  94. {
  95. boolean isRowEqual = tickets.get(i).getRow() == tickets.get(j).getRow();
  96. boolean isBoardGroupEqual = tickets.get(i).getBoardingGroup() == tickets.get(j).getBoardingGroup();
  97.  
  98. //if one of them false, print the all added Passengers
  99. if(!(isRowEqual && isBoardGroupEqual))
  100. {
  101. if(j != i+1)
  102. {
  103. System.out.println(str);
  104. }
  105. break;
  106. }
  107.  
  108. str += " " + (j+1);
  109.  
  110. }
  111. }
  112.  
  113.  
  114. }
  115. }
  116.  
  117. class AirlineTicket
  118. {
  119. private String[] seats = {"A","B","C","D","E","F"};
  120. private String name;
  121. private String seat;
  122. private int boardingGroup;
  123. private int row;
  124.  
  125. public AirlineTicket(String name, String seat, int boardingGroup, int row)
  126. {
  127. this.name = name;
  128. if(isValidSeat(seat))
  129. {
  130. this.seat = seat;
  131. }
  132. this.boardingGroup = boardingGroup;
  133. this.row = row;
  134.  
  135. }
  136.  
  137. private boolean isValidSeat(String seat)
  138. {
  139. boolean isValidSeat = false;
  140. for(String elem: seats)
  141. {
  142. if(seat.equals(elem))
  143. {
  144. isValidSeat = true;
  145. }
  146. }
  147. return isValidSeat;
  148. }
  149.  
  150. public String getSeat()
  151. {
  152. return this.seat;
  153. }
  154.  
  155. public String getName()
  156. {
  157. return this.name;
  158. }
  159.  
  160. public int getBoardingGroup()
  161. {
  162. return this.boardingGroup;
  163. }
  164.  
  165. public int getRow()
  166. {
  167. return this.row;
  168. }
  169.  
  170. public String toString()
  171. {
  172. return name + " Seat: " +seat + " Row: " + row + " Boarding Group: " + boardingGroup;
  173. }
  174. }
Success #stdin #stdout 0.2s 60536KB
stdin
Standard input is empty
stdout
Passenger 1 Seat: A Row: 1 Boarding Group: 1
Passenger 2 Seat: C Row: 3 Boarding Group: 3
Passenger 3 Seat: C Row: 1 Boarding Group: 2
Passenger 4 Seat: C Row: 6 Boarding Group: 4
Passenger 5 Seat: A Row: 3 Boarding Group: 4
Passenger 6 Seat: B Row: 5 Boarding Group: 3
Passenger 7 Seat: D Row: 7 Boarding Group: 4
Passenger 8 Seat: C Row: 1 Boarding Group: 3
Passenger 9 Seat: E Row: 4 Boarding Group: 4
Passenger 10 Seat: B Row: 7 Boarding Group: 2
Passenger 11 Seat: C Row: 4 Boarding Group: 2
Passenger 12 Seat: C Row: 4 Boarding Group: 5
Passenger 13 Seat: E Row: 7 Boarding Group: 3
Passenger 14 Seat: C Row: 3 Boarding Group: 2
Passenger 15 Seat: C Row: 2 Boarding Group: 2

Passengers Ordered by Boarding Group:
Boarding Group 1:
Passenger Passenger 1
Boarding Group 2:
Passenger Passenger 3
Passenger Passenger 10
Passenger Passenger 11
Passenger Passenger 14
Passenger Passenger 15
Boarding Group 3:
Passenger Passenger 2
Passenger Passenger 6
Passenger Passenger 8
Passenger Passenger 13
Boarding Group 4:
Passenger Passenger 4
Passenger Passenger 5
Passenger Passenger 7
Passenger Passenger 9
Boarding Group 5:
Passenger Passenger 12

Passengers in line who can board together: