如何使用比较器?

时间:2019-02-21 18:47:09

标签: java algorithm comparator

我正在尝试编写一些代码,我需要使用比较器,但是我不知道什么是比较器。您能否解释一下为什么我们使用比较器?什么是可比较的?

我也正确地做到了吗?我尝试在顶部使用工具Comparator <>,但无法正常工作。

这是我的代码。

const routes: Routes = [
  { path: 'activate*', component: EmailConfirmationComponent },
  { path: 'activate/:id', component: LoadSomeComponent},
  // otherwise redirect to root
  { path: '**', redirectTo: '', canActivate: [AuthGuard] }
];

}

3 个答案:

答案 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;