-2

I have an object called Movie and an array list called movieList. The object contains variables such as nameOfMovie, movieGenre ,dateRelised , curentRating. All those variables have gets and sets. In addition to that i have a form that has a textarea for each variable to be printed out. I was wandering how do i actually use the array list to sort the data that is stored.

So for example if i wanted to sort the curentRating of a movie in smallest to biggest what would be the syntax of the program ?

Dzyuv001
  • 318
  • 1
  • 6
  • 18

1 Answers1

0

Your movie class will need to implement the 'Comparable' interface. https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html

According to the documentation you need to have a method called: compareTo(T o)

int compareTo(T o) Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object. The implementor must ensure sgn(x.compareTo(y)) == -sgn(y.compareTo(x)) for all x and y. (This implies that x.compareTo(y) must throw an exception iff y.compareTo(x) throws an exception.)

The implementor must also ensure that the relation is transitive: (x.compareTo(y)>0 && y.compareTo(z)>0) implies x.compareTo(z)>0.

Finally, the implementor must ensure that x.compareTo(y)==0 implies that sgn(x.compareTo(z)) == sgn(y.compareTo(z)), for all z.

It is strongly recommended, but not strictly required that (x.compareTo(y)==0) == (x.equals(y)). Generally speaking, any class that implements the Comparable interface and violates this condition should clearly indicate this fact. The recommended language is "Note: this class has a natural ordering that is inconsistent with equals."

In the foregoing description, the notation sgn(expression) designates the mathematical signum function, which is defined to return one of -1, 0, or 1 according to whether the value of expression is negative, zero or positive.

So basically you'll have a movie class that is declared like:

public class Movie implements Comparable{
  String nameOfMovie;
  .
  .
  .
  public int compareTo(Movie otherMovie){
     return someint;//this will be -1 if it's less than the current movie, 0 if its the same and 1 if its more than in terms of logical ordering;
  }

}

Should see the documentation for more info.

Liang
  • 383
  • 4
  • 13