永发信息网

如何在java里面对Object的类型值进行一个大小的比较

答案:2  悬赏:20  手机版
解决时间 2021-03-19 16:15
  • 提问者网友:寂寞梧桐
  • 2021-03-19 05:51
如何在java里面对Object的类型值进行一个大小的比较
最佳答案
  • 五星知识达人网友:深街酒徒
  • 2021-03-19 06:12
这个类是什么样的类,比较类的对象,一般比较的是对象的属性,这样的话就可以在类里面写个CompareTo(XXXX)方法,把两个对象的属性按你想要的规则进行比较就行了,返回值的话建议返回-1,0,1
全部回答
  • 1楼网友:野味小生
  • 2021-03-19 07:30
作者:tao li 链接:https://www.zhihu.com/question/36897771/answer/69763955 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 java中类的比较一般有两种方法,一种就是类本身实现comparable这个接口,比如通过对用户的姓名进行比较排序: package com.ailot.compare; public class user implements comparable { private string name; private int age; private string sex; public user(string name,int age,string sex){ this.name = name; this.age = age; this.sex = sex; } public string getname() { return name; } public void setname(string name) { this.name = name; } public int getage() { return age; } public void setage(int age) { this.age = age; } public string getsex() { return sex; } public void setsex(string sex) { this.sex = sex; } @override public string tostring() { return "user [name=" + name + ", age=" + age + ", sex=" + sex + "]"; } @override public int compareto(user u) { // todo auto-generated method stub int c = this.name.compareto(u.name); if(c==0){ return 0; }else if(c > 0){ return 1; }else{ return -1; } } } test.java package com.ailot.compare; import java.util.arraylist; import java.util.collections; import java.util.list; import java.util.random; public class test { public static void main(string[] args) { list userlist = new arraylist(); for(int i=0;i<10;i++){ int s = new random().nextint(20); user u = new user(s+"张三",i,"男"); userlist.add(u); } collections.sort(userlist); for(user user : userlist){ system.out.println(user.tostring()); } } } 排序的话直接用 collections.sort( userlist ) ;就可以了。 作者:tao li 链接:https://www.zhihu.com/question/36897771/answer/69763955 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 另一种就是类没有实现comparable这个接口,这就需要自己新建一个比较的类,通过实现comparator来对类进行比较,还是对user类的姓名进行比较排序: user.java package com.ailot.compare; public class user { private string name; private int age; private string sex; public user(string name,int age,string sex){ this.name = name; this.age = age; this.sex = sex; } public string getname() { return name; } public void setname(string name) { this.name = name; } public int getage() { return age; } public void setage(int age) { this.age = age; } public string getsex() { return sex; } public void setsex(string sex) { this.sex = sex; } @override public string tostring() { return "user [name=" + name + ", age=" + age + ", sex=" + sex + "]"; } } usercompare.java package com.ailot.compare; import java.util.comparator; public class usercompare implements comparator { @override public int compare(user u1, user u2) { // todo auto-generated method stub int c = u1.getname().compareto(u2.getname()); if(c == 0){ return 0; }else if(c < 0){ return -1; }else{ return 1; } } } test.java package com.ailot.compare; import java.util.arraylist; import java.util.collections; import java.util.list; import java.util.random; public class test { public static void main(string[] args) { list userlist = new arraylist(); for(int i=0;i<10;i++){ int s = new random().nextint(20); user u = new user(s+"张三",i,"男"); userlist.add(u); } collections.sort(userlist,new usercompare()); for(user user : userlist){ system.out.println(user.tostring()); } } } 排序的话直接用 collections.sort(userlist,new usercompare());就可以了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯