Java will be the programming language Assume a class named Tag that contains the
ID: 3924735 • Letter: J
Question
Java will be the programming language
Assume a class named Tag that contains the tags associated with a digitized audio file. Two of the fields in the Tag class are track and album; both fields are Strings. The class also defines two accessory (getter) methods: getTrack() and getAlbum(). Write a single Comparator compare method that orders the audio files alphabetically by album and alphabetically by track within each album. For example: album a, track a album a, track b album a, track c album b, track a album b, track b album b, track cExplanation / Answer
Hi, Please find my code.
I have implemented Tag, TagComparator and TagTest class:
Please let me know in case of any issue.
########### Tag.java ################
public class Tag{
// instance variables
private String track;
private String album;
// constructor
public Tag(String album, String track){
this.album = album;
this.track = track;
}
// getter method
public String getTrack(){
return track;
}
public String getAlbum(){
return album;
}
}
########### TagComparator.java ###############
import java.util.Comparator;
public class TagComparator implements Comparator<Tag> {
// overriding compare method
@Override
public int compare(Tag track1, Tag track2) {
// if bith track belongs to same album then sort based on track
if(track1.getAlbum().equals(track2.getAlbum())){
return track1.getTrack().compareTo(track2.getTrack());
}else// if both belongs to different album, then sort based on album
return track1.getAlbum().compareTo(track2.getAlbum());
}
}
######## TagTest.java #############
import java.util.Arrays;
public class TagTest {
public static void main(String[] args) {
// creating Tag array
Tag[] tags = {
new Tag("a", "b"),
new Tag("b", "a"),
new Tag("a", "c"),
new Tag("b", "c"),
new Tag("c", "c"),
new Tag("a", "a"),
new Tag("b", "b")
};
// sorting
Arrays.sort(tags, new TagComparator());
// printing sorted tags
for(Tag g: tags){
System.out.println("album "+g.getAlbum()+", track "+g.getTrack());
}
}
}
/*
Sampe run:
album a, track a
album a, track b
album a, track c
album b, track a
album b, track b
album b, track c
album c, track c
*/
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.