Java通过桶值排序

时间:2011-07-27 06:43:27

标签: java

我试图通过函数中的某个值进行排序,

 Collection users = roster.getEntries();
 if(!users.isEmpty()) {

 Iterator userIterator = users.iterator();
 while(userIterator.hasNext()) {
      String name = user.getName()==null?user.getUser():user.getName();

现在在迭代之前,我想按用户的名字对这个Collection进行排序。关于如何解决这个问题的任何建议?

感谢您的时间。

3 个答案:

答案 0 :(得分:3)

如果集合保留了订单,您可以使用Collections.sort()并提供Comparator。如果它没有将它复制到ArrayList中。

除非您使用的是Java 1.4或更早版本,否则我将使用泛型和for-each循环。

Collection<User> users = roster.getEntries();
if(!users.isEmpty()) {
    Collections.sort(users, SORT_BY_NAME_COMPARATOR);
    for(User user: users) {
        // do something
    }
}

答案 1 :(得分:1)

考虑您有一个User类。该课程可以实施Comparable。阅读有关此界面和用法的信息。

答案 2 :(得分:0)

或者您可以通过应用匿名Comparator

来尝试
Collections.sort( users , new Comparator() {
    @Override
    public int compare(Object o1, Object o2) {
        return ( (User)o1 ).getName().compareTo( ( (User)o2 ).getName() );
    }
});