The Car Class
Define a class called “Car” that implements the parameterized Comparable interface. Each object of this class represents a type of car. Your class must provide all the methods in the public interface. Be sure to properly document each method in this class.
The CarComparator Class
Define a class, “CarComparator”, that implements the parameterized Comparator interface. The Compare method should compare cars by -year+make+model, where + denotes ascending order, - denotes descending order, and year, make and model are the primary, secondary and tertiary keys.
The CarSorter Class
Write a program, CarSorter, to test your Car and
CarComparator implementations. Suppose that you have a text file with each line containing the year, an integer, the make, a one-word string, and model, a string of one or more words, of a car. Write a program that reads the information about the cars from the file and stores them in an array list of objects of the Car class.
For example, the input file to the program could be carlot.txt whose contents are shown below:
1998 Honda Prelude
1998 Honda Accord
2006 Honda Ridgeline
1996 Ford Taurus
1996 Mitsubishi Eclipse
2015 Mitsubishi Galant
2010 Ford Fusion
2003 Mazda Protege 5
2002 Mazda Protege 5
2002 Isuzu Trooper
Your program should do the following:
1. prompt the user for the name of the input file,
2. read the data from the input file and store information about the cars in an array list of Car objects,
3. print the unsorted data from the array list to the screen, as shown below,
4. create another array list and an array that contain the same data as the original array list,
5. sort the second array list by the order defined by the Comparable interface, while leaving the original array list unsorted
6. prompt the user for the name of an output file and then display on the screen and write the information in the sorted array list to the file,
7. sort the array by the order defined by the Comparable interface,
8. prompt the user for the name of a second output file and then display on the screen and write the information in the sorted array to the file,
9. again, create a third array list and a second array that contain the same data as the original array list,
10. sort the third array list using a comparator of the CarComparator class,
11. prompt the user for the name of third output file and then display on the screen and write the information in the sorted array list to the file,
12. sort the second array using a comparator of the CarComparator class,
13. and, finally, prompt the user for the name of a fourth output file and then display on the screen and write the information in the sorted array to the file.
The input file may contain information about any number of cars. The output to the file and on the screen should be formatted as shown in the sample run below. Your program should use a try-catch statement to handle any potential IOException.
Enter the name of the input file -> carlot.txt
The Unsorted Array List of Cars
[Honda, Prelude, 1998]
[Honda, Accord, 1998]
[Honda, Ridgeline, 2006]
[Ford, Taurus, 1996]
[Mitsubishi, Eclipse, 1996]
[Mitsubishi, Galant, 2015]
[Ford, Fusion, 2010]
[Mazda, Protege 5, 2003]
[Mazda, Protege 5, 2002]
[Isuzu, Trooper, 2002]
Enter the name of the first output file -> mmya1.txt
The Sorted Array List of Cars By Make-Model-Year
------------------------------------------------
Ford Fusion 2010
Ford Taurus 1996
Honda Accord 1998
Honda Prelude 1998
Honda Ridgeline 2006
Isuzu Trooper 2002
Mazda Protege 5 2002
Mazda Protege 5 2003
Mitsubishi Eclipse 1996
Mitsubishi Galant 2015
Enter the name of the second output file -> mmya.txt
The Sorted Array of Cars By Make-Model-Year
-------------------------------------------
Ford Fusion 2010
Ford Taurus 1996
Honda Accord 1998
Honda Prelude 1998
Honda Ridgeline 2006
Isuzu Trooper 2002
Mazda Protege 5 2002
Mazda Protege 5 2003
Mitsubishi Eclipse 1996
Mitsubishi Galant 2015
Enter the name of the third output file -> ymmal.txt
The Sorted Array List of Cars By Year-Make-Model
------------------------------------------------
2015 Mitsubishi Galant
2010 Ford Fusion
2006 Honda Ridgeline
2003 Mazda Protege 5
2002 Isuzu Trooper
2002 Mazda Protege 5
1998 Honda Accord
1998 Honda Prelude
1996 Ford Taurus
1996 Mitsubishi Eclipse
Enter the name of the fourth output file -> ymma.txt
The Sorted Array of Cars By Year-Make-Model
-------------------------------------------
2015 Mitsubishi Galant
2010 Ford Fusion
2006 Honda Ridgeline
2003 Mazda Protege 5
2002 Isuzu Trooper
2002 Mazda Protege 5
1998 Honda Accord
1998 Honda Prelude
1996 Ford Taurus
1996 Mitsubishi Eclipse