您的位置:首页 > 编程语言 > Java开发

Java 基础小知识二:使用Comparator 对ArrayList 进行排序

2013-08-26 13:32 615 查看
有时,我们需要对自定义对象的List按照一定规则进行排序,Comparator  是个比较方便的方式, 看一下小例子:

定义了一个User类,里边只有一个age属性:
public class User {
private String age;

public String getAge() {
return age;
}

public void setAge(String age) {
this.age = age;
}

public User(String age){
this.age=age;
}
}


我们需要对一个User类的ArrayList按照年龄进行排序, 下面我们定义个ComparatorUser,让它实现Comparator接口并且重写compare方法,排序的规则就写在里边:
import java.util.Comparator;

public class ComparatorUser implements Comparator {

public int compare(Object arg0, Object arg1) {
User user0 = (User) arg0;
User user1 = (User) arg1;
return user0.getAge().compareTo(user1.getAge());
}
}

下面我们来进行一下测试:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class CollectionSortTest {

/**
* @param args
*/
public static void main(String[] args) {
List<User> userlist=new ArrayList();
userlist.add(new User("1"));
userlist.add(new User("5"));
userlist.add(new User("2"));
userlist.add(new User("4"));
userlist.add(new User("3"));
userlist.add(new User("6"));

ComparatorUser comparator=new ComparatorUser();
Collections.sort(userlist, comparator);

for (int i=0;i<userlist.size();i++){
User user_temp=(User)userlist.get(i);
System.out.println(user_temp.getAge());
}

}

}调用Collections 的sort 方法,就可以了,一下是运行结果:
1
2
3
4
5
6

可以看到,userList已经正确排序了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java
相关文章推荐