我在采访中得到一个问题,即在排序泛型类的对象时(让我们说一下" Employee类的对象"其中包含变量" EmpId"" EmpName&# 34;)当我在Collection.sort()方法中使用比较器时,我需要使用" new"关键字以及比较器。我们都知道比较器是一个接口,它无法实例化。那么我们如何以及为什么使用" new"有关键字吗?当我发现这个问题非常有趣时,我想与大家分享。任何帮助表示赞赏。以下是我发布的示例代码部分: -
ArrayList<Employee> emp= new ArrayLisy<Employee>();
Collection.sort(emp, new Comparator(){
public int compare(emp e1, emp e2)
{
if(e1.getId>e2.getId)
{
return 1;
}
if(e1.getId<e2.getId)
{
return -1;
}
else
return 0;
}
})
我的问题是我们为什么要使用&#34; new&#34;这里有关于Comparator界面的关键字?感谢
答案 0 :(得分:3)
答案 1 :(得分:1)
我想你会因为我们如何创建界面对象而感到困惑 - 但这只是anonymous class正在实施
new Comparator() { // anonymous class body
public int compare(emp e1, emp e2) {
if (e1.getId > e2.getId) {
return 1;
}
if (e1.getId < e2.getId) {
return -1;
} else
return 0;
}
}