• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
一个具有上进心的码农
因为一篇文章中有很多是从很多篇文章中摘取的,请恕我没有一一说明摘取出处,如果没有说明,则该文章默认是摘取,如有侵犯您的权益,请与我联系,将会马上删除。
博客园    首页    新随笔    联系   管理    订阅  订阅

JAVA排序

 List<People> list = ...; //import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class Person implements Comparable{
    private int  age;
    private String name;
    
    public Person() {
        // TODO Auto-generated constructor stub
        age=0;
        name="";
    }
    Person(int age,String name){
        this.age = age;
        this.name =name;
    }
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
    @Override
    public int compareTo(Object o) {
        // TODO Auto-generated method stub
        Person p = (Person)o;
        if(this.name.compareTo(p.getName())>0){
            return 1;
        }
        else if(this.name.compareTo(p.getName())<0){
            return -1;
        }
        else{
            if(this.age>p.getAge()){
                return 1;
            }
            else if(this.age<p.getAge()){
                return -1;
            }
        }
            
        return 0;
    }
    
    
}

public class TestSort {
    public static void main(String[] args) {
        List<Person> list = new ArrayList<Person>() ;
        list.add(new Person(31,"zhangsan"));
        list.add(new Person(13,"lisi"));
        list.add(new Person(24,"wangwu"));
        list.add(new Person(24,"lisi"));
        
        Collections.sort(list);
        
        for (Object o : list) {
            Person p = (Person)o;
            System.out.println(p.getName()+" "+p.getAge());
        }
    }
}有个保存了People类的List
Collections.sort(list, new Comparator<People>() { //排序
    public int compare(People p1, People p2) {
        if (p1.getName().compareTo(p2.getName()) == 0) { //如果名字相同
            return p2.getAge() - p1.getAge(); //年龄降序
        }
        return p1.getName().compareTo(p2.getName()); //姓名升序
    }
});
//这样list就排序好了,上述假设People类有getName方法获取姓名,getAge方法获取年龄

 

 

 

posted @ 2012-07-28 18:41  不若相忘于江湖  阅读(122)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3