To sort a list of Person objects according to its 'name' property, use the template below.
List personList = personListDTO.getPersons(); Collections.sort(personList ,new Comparator() { public int compare(Object o1, Object o2) { Person p1 = (Person)o1; Person p2 = (Person)o2; return p1.getName().compareTo(p2.getName()); } });
You may also use the more compact form below.
List<Person> personList = personListDTO.getPersons(); Collections.sort(personList ,new Comparator<Person>() { public int compare(Person p1, Person p2) { return p1.getName().compareTo(p2.getName()); } });
This code will help you avoid getting a warning in eclipse of the generic type -
- Type safety: The expression of type new Comparator(){} needs unchecked conversion to conform to Comparator<? super Person>
- Type safety: Unchecked invocation sort(List<Person>, new Comparator(){}) of the generic method sort(List<T>, Comparator<? super T>) of type Collections
- Comparator is a raw type. References to generic type Comparator<T> should be parameterized
Related Links:
More examples on using Comaparator in Java
How to sort a map in Java
Reference:
Collections class reference
No comments:
Post a Comment