Hello,
I need to sort an ArrayList of rational numbers, using methods from the Collections Framework classes to sort the elements into increasing order. I am getting an error message when compiling my code, which is 'cannot find symbol - method sort(java.util.List<Rational>)'. Can someone point me in the right direction?
Thanks for any help
Here's the code:
public interface Comparable<T>
{
public int compareTo(T o);
}
import java.util.*;
public class Rational implements Comparable<Rational>
{
private int numerator;
private int denominator;
// Constructor
public Rational(int n, int d)
{
numerator = n;
denominator = d;
}
public static void main(String[] args)
{
List<Rational> rationals = new ArrayList<Rational>();
rationals.add(new Rational(3,1));
rationals.add(new Rational(22,7));
rationals.add(new Rational(333,106));
rationals.add(new Rational(355,113));
rationals.add(new Rational(103993,33102));
rationals.add(new Rational(104348,33215));
rationals.add(new Rational(208341,66317));
System.out.println(rationals);
Collections.sort(rationals);
System.out.println(rationals);
}
public int compareTo(Rational o)
{
Rational r = (Rational) o;
int result = numerator*r.denominator - r.numerator*denominator;
if (result>0) return 1;
else if (result < 0) return -1;
else return 0;
}
public boolean equals(Object o)
{
return (compareTo(o)==0);
}
public String toString()
{
return numerator+"/"+denominator;
}
}