Java 将对象与扩展第一个对象的另一个对象进行比较
我试图比较两个混淆的对象列表。我有一个类Java 将对象与扩展第一个对象的另一个对象进行比较,java,sorting,collections,Java,Sorting,Collections,我试图比较两个混淆的对象列表。我有一个类Sms,另一个类ArchivedSms扩展了Sms 如何使用Collections.sort(collection,comparator)比较这些对象的列表 List smses=new ArrayList(); List archivedSmses=new ArrayList(); 添加所有文件(归档文件); 如何比较这些对象假定它们都有相同的字段,因此我想比较例如作为字符串的电话号码。您应该编写自己的比较器,实现比较器 调用集合时,可以执行相同的内联
Sms
,另一个类ArchivedSms扩展了Sms
如何使用Collections.sort(collection,comparator)
比较这些对象的列表
List smses=new ArrayList();
List archivedSmses=new ArrayList();
添加所有文件(归档文件);
如何比较这些对象假定它们都有相同的字段,因此我想比较例如作为字符串的电话号码。您应该编写自己的比较器,实现
比较器
调用集合时,可以执行相同的内联操作。排序:
Collections.sort(smes, new Comparator<Sms>() {
@Override
public bool compare(Sms o1, Sms o2) {
if(o1.getA() > o2.getA()) return 1;
else if(o1.getA() > o2.getA()) return -1;
else return 0;
}
})
Collections.sort(smes,新的比较器(){
@凌驾
公共广播比较(短信o1、短信o2){
如果(o1.getA()>o2.getA())返回1;
else if(o1.getA()>o2.getA())返回-1;
否则返回0;
}
})
在Java8中,您可以做与lambda函数相同的事情(因为这是一个函数接口)。您应该编写自己的比较器,实现比较器
调用集合时,可以执行相同的内联操作。排序:
Collections.sort(smes, new Comparator<Sms>() {
@Override
public bool compare(Sms o1, Sms o2) {
if(o1.getA() > o2.getA()) return 1;
else if(o1.getA() > o2.getA()) return -1;
else return 0;
}
})
Collections.sort(smes,新的比较器(){
@凌驾
公共广播比较(短信o1、短信o2){
如果(o1.getA()>o2.getA())返回1;
else if(o1.getA()>o2.getA())返回-1;
否则返回0;
}
})
在java 8中,您可以执行与lambda函数相同的操作(因为这是一个函数接口)。实现比较器。实现比较器。我不能使用内联新比较器吗?例如Collections.sort(smses,newcomparator(){});当然,只需内联实现compare
方法。在Java8中,这也可以是一个lambda表达式,因为这是一个函数接口。我编写了@Override public int compare(Sms o1,Sms o2){if(o1.getPhoneNumber().equals(o2.getPhoneNumber()){return 1;}else if(!(o1.getPhoneNumber().equals(o2.getPhoneNumber())){return-1;}else返回0;}但是@Collections.sort(smses,new-smscomperator())仍然不起作用;在这里比较Sms和ArchivedSms类可以吗?我不能使用内联的新比较器吗?例如Collections.sort(smses,newcomparator(){});当然,只需内联实现compare
方法。在Java8中,这也可以是一个lambda表达式,因为这是一个函数接口。我编写了@Override public int compare(Sms o1,Sms o2){if(o1.getPhoneNumber().equals(o2.getPhoneNumber()){return 1;}else if(!(o1.getPhoneNumber().equals(o2.getPhoneNumber())){return-1;}else返回0;}但是@Collections.sort(smses,new-smscomperator())仍然不起作用;在这里比较Sms和ArchivedSms类可以吗?
public class SmsComparator implements `Comparator<Sms>` {
@Override
public bool compare(Sms o1, Sms o2) {
if(o1.getA() > o2.getA()) return 1;
else if(o1.getA() > o2.getA()) return -1;
else return 0;
}
}
Collections.sort(smes, new Comparator<Sms>() {
@Override
public bool compare(Sms o1, Sms o2) {
if(o1.getA() > o2.getA()) return 1;
else if(o1.getA() > o2.getA()) return -1;
else return 0;
}
})