You are given a CollegeWrestler class. A CollegeWrestler has a String name and a
ID: 3815048 • Letter: Y
Question
You are given a CollegeWrestler class. A CollegeWrestler has a String name and a weight as a double. We need to order wrestlers in two ways: alphabetically by name and by weight. We can not do this with the Comparable interface.
Create two Comparator objects, one to handle each type of ordering. You can do this several different ways. If you write separate classes, call then CollegeWrestlerComparatorByWeight and CollegeWrestlerComparatorByName. If you use inner classes or anonymous inner classes in ComparatorRunner, just leave the text area for the Comparator files empty.
Then complete the ComparatorRunner class. It defines an ArrayList of CollegeWrestlers.
Sort by weight and then loop through the ArrayList printing the weight and then the name of each CollegeWrestlers (use Collections.sort)
Sort by name and then loop through the ArrayList printing the name and then the weight of each CollegeWrestlers.(use Collections.sort).
Complete the following files:
******CollegeWrestlerComparatorByName.java*******
******CollegeWrestlerComparatorByWeight.java********
Use the following file:
***************ComparatorRunner.java***************
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class ComparatorRunner
{
public static void main(String[] args)
{
ArrayList<CollegeWrestler> wrestlers = new ArrayList<CollegeWrestler>();
wrestlers.add(new CollegeWrestler("Collin", 175.5));
wrestlers.add(new CollegeWrestler("Dong", 124.5));
wrestlers.add(new CollegeWrestler("Jose", 140.9));
wrestlers.add(new CollegeWrestler("Enrique", 290));
}
}
**************CollegeWrestler.java*******************
Explanation / Answer
CollegeWrestlerComparatorByName.java
import java.util.Comparator;
public class CollegeWrestlerComparatorByName implements Comparator<CollegeWrestler>{
public int compare(CollegeWrestler o1, CollegeWrestler o2) {
return o1.getName().compareTo(o2.getName());
}
}
CollegeWrestlerComparatorByWeight.java
import java.util.Comparator;
public class CollegeWrestlerComparatorByWeight implements Comparator<CollegeWrestler>{
public int compare(CollegeWrestler o1, CollegeWrestler o2) {
return (int)(o1.getWeight() - o2.getWeight());
}
}
CollegeWrestler.java
public class CollegeWrestler
{
private String name;
private double weight;
public CollegeWrestler( String name, double weight)
{
this.name = name;
this.weight = weight;
}
public double getWeight()
{
return weight;
}
public String getName()
{
return name;
}
}
ComparatorRunner.java
import java.util.ArrayList;
import java.util.Collections;
public class ComparatorRunner
{
public static void main(String[] args)
{
ArrayList<CollegeWrestler> wrestlers = new ArrayList<CollegeWrestler>();
wrestlers.add(new CollegeWrestler("Collin", 175.5));
wrestlers.add(new CollegeWrestler("Dong", 124.5));
wrestlers.add(new CollegeWrestler("Jose", 140.9));
wrestlers.add(new CollegeWrestler("Enrique", 290));
Collections.sort(wrestlers, new CollegeWrestlerComparatorByName());
for(CollegeWrestler wrestler: wrestlers) {
System.out.println(wrestler.getName()+" "+wrestler.getWeight());
}
System.out.println("------------------------------------");
Collections.sort(wrestlers, new CollegeWrestlerComparatorByWeight());
for(CollegeWrestler wrestler: wrestlers) {
System.out.println(wrestler.getName()+" "+wrestler.getWeight());
}
}
}
Output:
Collin 175.5
Dong 124.5
Enrique 290.0
Jose 140.9
------------------------------------
Dong 124.5
Jose 140.9
Collin 175.5
Enrique 290.0
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.