私は匿名の内部クラスとしてコンパレータを作成していますが、その最良の方法はわかりません。私はコード内で一度しか作成していませんが、リストをソートするたびにその内部クラスが作成されているかどうかはわかりません。たとえば、アプリケーションで、コンパレータを10回使用してソートメソッドを呼び出す場合、10個の追加クラスが作成されますか?匿名の内部クラス - コレクションsort
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;
}
});
VS
Collections.sort(originalList、新しいSomeComparator())。
コードを新しいインスタンスを作成しません千の言葉の価値があります!私たちに教えてください! – MrSimpleMind
「10個の追加クラスを作成する」とは、10個のインスタンスを意味する場合、答えは「はい」です。 (これは 'new'キーワードの意味です) –
...しかし、実際には10の余分なインスタンスを実行します*実際にはパフォーマンスに顕著な影響を与えますか?特定の状況下では、おそらく;一般的に、ナ。 –