The program has defined the Route class written in the previous exercise. Write a method: public static ArrayList routesInDirection(ArrayList routes, CardinalDirection direction) which receives a list of route objects and a direction as parameters. The method returns a new list containing those routes that go in the given direction. The ORDER of the routes in the new list should be the SAME as in the list provided as a parameter. import java.util.ArrayList; import java.util.Random; public class Test{ public static void main(String[] args){ final Random r = new Random(); ArrayList al = new ArrayList<>(); int count = r.nextInt(5) + 10; for (int i = 0; i < count; i++) { double length = r.nextInt(200) + 10; CardinalDirection direction = CardinalDirection.values()[r.nextInt(4)]; al.add(new Route(length, direction)); } System.out.println("All routes:"); al.stream().forEach(rt -> System.out.println("" + rt)); for (CardinalDirection direction : CardinalDirection.values()) { System.out.println(""); System.out.println("Routes in the direction " + direction); ArrayList al2 = routesInDirection(al, direction); al2.stream().forEach(rt -> System.out.println("" + rt)); } } //add public static ArrayList routesInDirection(ArrayList routes, CardinalDirection direction) { // initialise empty ArrayList // approach 1 - works ArrayList filteredRoutes = new ArrayList(); // approach 2 - works // in Java 7+ // ArrayList filteredRoutes = new ArrayList<>(); for (Route route: routes) { if (route.getDirection() == direction) { filteredRoutes.add(route); } } return filteredRoutes; } } All routes: Direction: NORTH, length: 125.0 Direction: WEST, length: 160.0 Direction: NORTH, length: 114.0 Direction: NORTH, length: 196.0 Direction: NORTH, length: 167.0 Direction: NORTH, length: 169.0 Direction: WEST, length: 120.0 Direction: EAST, length: 124.0 Direction: WEST, length: 34.0 Direction: NORTH, length: 173.0 Direction: EAST, length: 107.0 Direction: WEST, length: 167.0 Direction: NORTH, length: 95.0 Routes in the direction NORTH Direction: NORTH, length: 125.0 Direction: NORTH, length: 114.0 Direction: NORTH, length: 196.0 Direction: NORTH, length: 167.0 Direction: NORTH, length: 169.0 Direction: NORTH, length: 173.0 Direction: NORTH, length: 95.0 Routes in the direction SOUTH Routes in the direction EAST Direction: EAST, length: 124.0 Direction: EAST, length: 107.0 Routes in the direction WEST Direction: WEST, length: 160.0 Direction: WEST, length: 120.0 Direction: WEST, length: 34.0 Direction: WEST, length: 167.0