java – 如何编写比较对象的compareTo方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何编写比较对象的compareTo方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1189字,纯文字阅读大概需要2分钟。
内容图文
我正在学习数组,基本上我有一个收集姓氏,名字和分数的数组.
我需要编写一个compareTo方法,它将比较姓氏和第一个名称,以便列表可以按字母顺序从姓氏开始排序,然后如果两个人具有相同的姓氏,那么它将对第一个名称进行排序.
我很困惑,因为我书中的所有信息都是比较数字,而不是对象和字符串.
这是我到目前为止编码的内容.我知道这是错的,但它至少解释了我认为我在做什么:
public int compare(Object obj) // creating a method to compare
{
Student s = (Student) obj; // creating a student object
// I guess here I'm telling it to compare the last names?
int studentCompare = this.lastName.compareTo(s.getLastName());
if (studentCompare != 0)
return studentCompare;
else
{
if (this.getLastName() < s.getLastName())
return - 1;
if (this.getLastName() > s.getLastName())
return 1;
}
return 0;
}
我知道<和>符号是错误的,但就像我说我的书只告诉你如何使用compareTo.
解决方法:
这是比较字符串的正确方法:
int studentCompare = this.lastName.compareTo(s.getLastName());
这甚至不会编译:
if (this.getLastName() < s.getLastName())
使用
if(this.getLastName().compareTo(s.getLastName())< 0)而不是.
所以要比较你需要的拳头/姓氏顺序:
int d = getFirstName().compareTo(s.getFirstName());
if (d == 0)
d = getLastName().compareTo(s.getLastName());
return d;
内容总结
以上是互联网集市为您收集整理的java – 如何编写比较对象的compareTo方法?全部内容,希望文章能够帮你解决java – 如何编写比较对象的compareTo方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。