我正在尝试编写一些代码,我需要使用比较器,但是我不知道什么是比较器。您能否解释一下为什么我们使用比较器?什么是可比较的?
我也正确地做到了吗?我尝试在顶部使用工具Comparator <>,但无法正常工作。
这是我的代码。
const routes: Routes = [
{ path: 'activate*', component: EmailConfirmationComponent },
{ path: 'activate/:id', component: LoadSomeComponent},
// otherwise redirect to root
{ path: '**', redirectTo: '', canActivate: [AuthGuard] }
];
}
答案 0 :(得分:2)
它用于进行相等性检查。假设您有一个属于同一类的对象的列表。如果所有3位数据都相同,则该类具有3个属性,您可以说它们相等。但您也可以说第二个属性的优先级高于第三个属性,第一个属性排在最后。因此,当比较所述对象列表时,这就是<,<= = =>,>,<>之类的运算符的行为。这样,您就可以进行诸如为该类的对象列表排序之类的事情。
可以从the Comparator javadoc获得其他背景。
答案 1 :(得分:1)
您的代码中的错误位于以下行:if (totalMedals1.totalMedals >= totalMedals1.totalMedals)
您需要比较两个对象,您有两次totalMedals1
,并且从不使用totalMedals2
。
答案 2 :(得分:1)
您的条件在比较方法中错误,两个对象相同。将totalMedals1更改为totalMedals2
当您对这些接口使用的对象进行排序时,例如您希望基于此逻辑使用Collections.sort(ListOfMedal)的示例,您的对象将得到排序
Comparable提供单个排序序列,而Comparator提供多个排序序列,请尝试以下代码
if (totalMedals1.totalMedals >= totalMedals2.totalMedals) return 1;
if (totalMedals1.totalMedals <= totalMedals2.totalMedals) return -1;
else return 0;