java吧 关注:1,293,290贴子:12,824,949
  • 6回复贴,共1

Java新手请求Java中集合问题

只看楼主收藏回复

如何将一个集合中的对象先按String排序,然后按数字排序。比如一个集合中有几个person对象,person有name和age,如何将person先按姓名排序,再按年龄排序


1楼2013-08-27 16:14回复
    如果让你用自己的方法写 你会怎么做?


    3楼2013-08-27 16:53
    回复
      2026-01-02 11:16:54
      广告
      不感兴趣
      开通SVIP免广告
      重写compareto()方法!


      来自Android客户端5楼2013-08-27 17:39
      回复
        person的compareTo()方法里面,name和age都要比较
        name和age都相等,返回0
        age相等的前提下,若name不相同,以name的大小关系确定是返回1还是-1
        age不相等(此时不用管name),以age的大小关系确定是返回1还是-1


        6楼2013-08-27 17:59
        回复
          刚写的不全,给你个新的
          class Person implements java.lang.Comparable{
          String name;
          int age;
          ……
          int CompareTo(Person ps){
          if(this.age == ps.age){
          if(this.name.equals(ps.name)){return 0;}
          else if(this.name.CompareTo(ps.name) < 0){return -1;}
          else if(this.name.CompareTo(ps.name) > 0){return 1;}
          }
          else{
          if(this.age < ps.age){return -1;}
          else if(this.age > ps.age){return -1;}
          }
          }
          ……


          8楼2013-08-27 18:13
          收起回复