You are given a CollegeWrestler class. A CollegeWrestler has a String name and a
ID: 3817104 • 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*******************
------Expected output-------
124.5 Dong
140.9 Jose
175.5 Collin
290.0 Enrique
Collin 175.5
Dong 124.5
Enrique 290.0
Jose 140.9
Explanation / Answer
// CollegeWrestlerComparatorByName code below
package com.testcode;
import java.util.Comparator;
public class CollegeWrestlerComparatorByName implements Comparator<CollegeWrestler>{
public int compare(CollegeWrestler t1,CollegeWrestler t2){
return (t1.getName().compareTo(t2.getName()));
}
}
// CollegeWrestlerComparatorByWeight code below
package com.testcode;
import java.util.Comparator;
public class CollegeWrestlerComparatorByWeight implements Comparator<CollegeWrestler> {
public int compare(CollegeWrestler t1, CollegeWrestler t2){
return Double.compare(t1.getWeight(), t2.getWeight());
}}
//ComparatorRunner completion code
package com.testcode;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
public class ComparatorRunner {
public static void main(String[] args) {
// TODO Auto-generated method stub
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 CollegeWrestlerComparatorByWeight());//Comparison by Weight
for(CollegeWrestler obj1:wrestlers)
System.out.println(obj1.getWeight()+" "+obj1.getName());
Collections.sort(wrestlers, new CollegeWrestlerComparatorByName()); //Comparison by Name
for(CollegeWrestler obj2:wrestlers)
System.out.println(obj2.getName()+" "+obj2.getWeight()) ; }
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.