I am working on a report module that shows the time spent and number of tasks. The values are set in the Java Bean and the bean object is stored in a array.I am using separate queries to get time and number of tasks.Now i have to sort the array based on time and number of tasks.
The code below compares only Strings:
if (!list.isEmpty()) {
Collections.sort(list, new Comparator() {
@Override
public int compare(Project p1, Project p2) {
return p1.getName().compare(p2.getName());
}
});
}
I have problems in sorting the integer value of a property in JavaBean which is stored in an array.Any help is greatly appreciated.
解决方案
In your comments below the question you say you have:
Project[] array = new Project[3];
If I were you I'd declare Project as
public class Project implements Comparable {
@Override
public int compareTo(Project other) {
return this.id - other.id; // or whatever property you want to sort
}
Then you can sort your array by simply calling
Arrays.sort(array);
If you don't want your class to implement the Comparable interface you can pass a comparator to Arrays.sort():
Arrays.sort(array, new Comparator() {
@Override
public int compare(Project o1, Project o2) {
return o1.id - o2.id; // or whatever property you want to sort
}
});
I used an anonymous one, you could also extract it to it's own class if needed elsewhere.