【发布时间】:2016-05-02 20:24:48
【问题描述】:
我正在创建一个比较器作为匿名内部类,我不确定它是否是最好的方法。我在我的代码中只创建了一次,但我不确定每次我对列表进行排序时是否创建了该内部类。例如,在一个应用程序中,如果我使用该比较器调用 sort 方法 10 次,是否会创建十个额外的类?
Collections.sort(originalList, new Comparator<User>() {
@Override
public int compare(User o1, User o2) {
int value1 = o1.getPropertyCode().compareTo(o2.getPropertyCode());
if (value1 == 0) {
int value2=o1.getPropertyValue().compareTo(o2.getPropertyValue());
return value2;
}
return value1;
}
});
对
Collections.sort(originalList, new SomeComparator());
【问题讨论】:
-
代码值一千字!给我们看看!
-
如果“创建十个额外的类”是指 10 个实例,那么答案是肯定的。 (这就是
new关键字的作用) -
...但是这 10 个额外的实例实际上对性能有显着影响吗?在特定情况下,也许;一般来说,不。
-
@user2296988 如果你的意思是你有 10 个不同的匿名类,你认为这有什么不同吗?一旦它们被类加载器加载,它只是创建实例。
标签: java