java List 排序 Collections.sort() 对 List 排序
2015-07-12 13:57
453 查看
class User {
String name;
String age;
public User(String name,String age){
this.name=name;
this.age=age;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
//具体的比较类,实现Comparator接口
import java.util.Comparator;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
public class ComparatorUser implements Comparator{
public int compare(Object arg0, Object arg1) {
User user0=(User)arg0;
User user1=(User)arg1;
//首先比较年龄,如果年龄相同,则比较名字
int flag=user0.getAge().compareTo(user1.getAge());
if(flag==0){
return user0.getName().compareTo(user1.getName());
}else{
return flag;
}
}
}
//测试类
public class SortTest {
public static void main(String[] args){
List userlist=new ArrayList();
userlist.add(new User("dd","4"));
userlist.add(new User("aa","1"));
userlist.add(new User("ee","5"));
userlist.add(new User("bb","2"));
userlist.add(new User("ff","5"));
userlist.add(new User("cc","3"));
userlist.add(new User("gg","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()+","+user_temp.getName());
}
}
}
//首先年龄排序,如果年龄相同,则按名字排序
结果:
1, aa
2, bb
3, cc
4, dd
5, ee //注意:同样是5岁的人,则比较名字(ee,ff),然后排序
5, ff
6, gg
相关文章推荐
- Java的List和Map作为入参与clone
- [Android]反编译apk + eclipse中调试smali
- 11.Java5的线程锁技术
- 为什么r.java文件中没有button的id
- java常用的
- java 定时器
- JavaEE 要懂的小事:三、图解Session(会话)
- JavaEE 要懂的小事:三、图解Session(会话)
- Eclipse can't install updates
- JavaFX横幅类游戏开发 教训 游戏贴图
- JavaBean入门与简介
- java整合log4j xml 配置 自定义日志文件路径和生成年月日的html文件
- Java 毫秒转换为日期类型、日期转换为毫秒
- java使用Base64编码和解码的图像文件
- Java内部类详解
- Java多线程(二)、线程的生命周期和状态控制
- spring 监听器 IntrospectorCleanupListener 防止内存泄露
- java内置锁synchronized的可重入性
- java迭代器模式
- struts2 CVE-2012-0838 S2-007 Remote Code Execution && Hotfix