import java.util.*; class Flight { public String tail_num; public boolean canceled; /* other fields from the real data intentionally omitted */ public Flight(String tail_num, boolean canceled) { this.tail_num = tail_num; this.canceled = canceled; } } class OutputRow { public String tail_num; public int count; public OutputRow(String tail_num, int count) { this.tail_num = tail_num; this.count = count; } @Override public String toString() { return "(" + tail_num + ", " + count + ")"; } } public class HW3 { public static List problem3(List flights) { // TODO: your code here } public static void main(String[] args) { List mock_flights = new ArrayList<>(); mock_flights.add(new Flight("N45517", true)); mock_flights.add(new Flight("N80847", false)); mock_flights.add(new Flight("N1358V", false)); mock_flights.add(new Flight("N80847", true)); mock_flights.add(new Flight("N719SJ", false)); mock_flights.add(new Flight("N1358V", true)); mock_flights.add(new Flight("N80847", false)); List output = problem3(mock_flights); for (OutputRow row : output) { System.out.println(row); } } } // Expected output: // // (N80847, 2) // (N719SJ, 1) // (N1358V, 1) // // (The two lines with count 1 may be printed in either order.) // // Your code will be tested on other data, so do not hard code the answer.