大家好,我是一网菜鸟网(http://www.sklll.com)站长,网站目前正在维护中,今天在这里做一下Comparator自定义对比的简单文章说明,大家有什么不懂的可以给我留言或者到我群(225223397)内和更多共同爱好的人一起讨论,我邮箱sklll@126.com。
通过Comparator自定义对比其实也比较简单,废话不多说,上代码:
1.先自定义一个实体类
2.写一个测试类
package org.ej.sort.entity;
/***************
*
* @author 用户类
* @date 2014年4月29日
* @http://www.zhiyunhome.com
*/
public class UserInfo {
private String userName;
private int userAge;
public UserInfo(String userName, int userAge) {
super();
this.userName = userName;
this.userAge = userAge;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getUserAge() {
return userAge;
}
public void setUserAge(int userAge) {
this.userAge = userAge;
}
}
编写测试类:
package org.ej.sort.test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import org.ej.sort.entity.UserInfo;
/************************
*
* @author 沈坤林
* @date 2014年4月29日
* @http://www.zhiyunhome.com
*
*/
public class SortTest implements Comparator<UserInfo>{
@Override
public int compare(UserInfo o1, UserInfo o2) {
// TODO Auto-generated method stub
return o1.getUserAge()-o2.getUserAge();
}
public static void main(String[] args) {
List<UserInfo> users = new ArrayList<UserInfo>();
UserInfo u1 = new UserInfo("TE", 10);
UserInfo u2 = new UserInfo("HD", 13);
UserInfo u3 = new UserInfo("花C", 7);
UserInfo u4 = new UserInfo("白B", 8);
UserInfo u5 = new UserInfo("胖A", 55);
UserInfo u6 = new UserInfo("张白", 32);
UserInfo u7 = new UserInfo("三K", 23);
users.add(u1);
users.add(u2);
users.add(u3);
users.add(u4);
users.add(u5);
users.add(u6);
users.add(u7);
//升序
Collections.sort(users,new SortTest());
System.out.println("====================升序===================");
for (UserInfo userInfo : users) {
System.out.println("姓名:"+userInfo.getUserName()+" 年龄:"+userInfo.getUserAge());
}
System.out.println("===================降序========================");
//降序
Collections.sort(users,Collections.reverseOrder(new SortTest()));
for (UserInfo userInfo : users) {
System.out.println("姓名:"+userInfo.getUserName()+" 年龄:"+userInfo.getUserAge());
}
}
}
结果如下:
搞定!
有什么不懂的可以直接加入群:181492057 一起讨论!