upanshu vaid wrote:How can I make comparator to sort according to name and according to sex
You were a whisker away from it with the comparator you just wrote, but then you returned 'name'.
As K.Tsang said, if you want to order by name THEN sex, then the sex comparison only needs to be done if the names are equal.
The problem is that, for any Comparable object, there are TWO ways of determining if they are "equal":
1. equals() returns true.
2. compareTo() returns 0.
And there is nothing that requires that the two methods work the same (although it's usually a good idea if they do).
Since your Comparator is creating an order, it makes sense to me to use compareTo(), since it is the method that provides an order; so putting all that together, you get (from your own method):or something very like it.
See how close you were?
Isn't it funny how there's always time and money enough to do it WRONG?
Articles by Winston can be found here
subject: How to add the objects to the arraylist class if object has many states