我试图通过函数中的某个值进行排序,
Collection users = roster.getEntries();
if(!users.isEmpty()) {
Iterator userIterator = users.iterator();
while(userIterator.hasNext()) {
String name = user.getName()==null?user.getUser():user.getName();
现在在迭代之前,我想按用户的名字对这个Collection进行排序。关于如何解决这个问题的任何建议?
感谢您的时间。
答案 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() );
}
});