guys! I am doing a coursework for uni and I am stuck on something. I have a hierarchy of classes and an ArrayList in which objects from those classes are stored. My code prints out objects' details stored in the ArrayList but I have to print them out according to a String field and I don't know how to do it. I need to print the details according to the title field in LibraryItem class and it is specified that I need to use Java Class Libraries. I looked through some stuff and based on what I've seen I'm guessing I need to use Comparable but I have no idea how it works... Here are parts of the code:
public class LibraryItem {
private String title;
private String itemCode;
private int timesBorrowed;
...
public void printDetails()
{
System.out.println("\nTitle: " + title);
System.out.println("Item code: " + itemCode);
System.out.println("Cost: " + cost);
System.out.println("Times borrowed: " + timesBorrowed);
System.out.println("On loan: " + onLoan);
}
}
...
public abstract class AudioVisual extends LibraryItem{
private int playingTime;
public AudioVisual()
{
super();
playingTime = 80;
}
public void printDetails()
{
super.printDetails();
System.out.println("Playing time: " + playingTime);
}
...
public class CD extends AudioVisual{
private String artist;
private int noOfTracks;
public CD()
{
super();
artist = "The Animals";
noOfTracks = 9;
}
public void printDetails()
{
super.printDetails();
System.out.println("Artist: " + artist);
System.out.println("Number of tracks: " + noOfTracks);
}
...
public class DVD extends AudioVisual{
private String director;
public DVD()
{
director = "Director1";
}
public void printDetails()
{
super.printDetails();
System.out.println("Director: " + director);
}
...
public class Library
{
private ArrayList<LibraryItem> itemList;
public Library()
{
itemList = new ArrayList<LibraryItem>();
}
public void printAllDetails()
{
for (LibraryItem item: itemList)
{
item.printDetails();
}
}
Again CD and DVD objects are added in the ArrayList. Thank you in advance!
List<LibraryItem>bytitle?Collections.sort(Comparator.comparing(LibraryItem::getTitle())).LibraryItemhave a methodgetTitle?Listyou are sorting too I suppose -Collections.sort(List, Comparator).