java - How does compareTo method of Comparable class work for objects -
say had movie class following instance variables:
private string mytitle; // title of bond film private string mybondactor; // name of actor portrayed james bond private int myyear; // year film released private double myfilmrating;// all-reviews.com private int mylengthhours; // hours (truncated) portion of film length private int mylengthminutes;// minutes beyond truncated hours
and had arraylist
of movie
objects, , used bubble sort algorithm sort arraylist
:
public void bubblesort(arraylist<movie> list) { (int outer = 0; outer < list.size() - 1; outer++) { (int inner = 0; inner < list.size() - outer - 1; inner++) { if (list.get(inner).compareto(list.get(inner + 1)) > 0) { movie temp = list.get(inner); list.set(inner, list.get(inner + 1)); list.set(inner + 1, temp); } } }
how arraylist
being sorted?
see when int x= 5,y=10 , can compare them x<y, can compare 2 variables, how compare 2 objects ??
we compare objects compareto(), movie class must implement comparable interface in order compare objects 1 another.
you have provide implementation compareto() method, this criteria decide object greater other.
for example, let movie should sorted(compared) based on int myyear(year of release) of film implementation
public int compareto(movie other) { return this.myyear - other.getmyyear(); }
now create 2 objects m1 , m2 of type movie m1.myyear=2000 , m2.myyear=2001
when m1.compareto(m2);
- we 2000 - 2001 = -1... negative number, means m1 < m2.
- if positive number m1 > m2
- if 0 m1 ==m2
here decide movie object greater other based on myyear , may decided on else maybe more condtions. whatever condition may be, remember number return +ve , -ve or 0 (zero) decide object greater other.
Comments
Post a Comment