あなたの質問を理解しているかどうかわかりません。2 つの項目の値が同じ場合、compareTo は 0 を返します (この場合は、この「数値」が同じであるため)。この関数 compareTo は、アルゴリズムがアイテムをソートする順序のみを定義し、ソート アルゴリズムによってどちらが最初になるかを決定します。まったく同じリストを使用して同じアルゴリズムを使用する場合、少なくともほとんどの一般的なアルゴリズムでは、ランダムではないため、出力は同じになります。しかし、リストまたはアルゴリズムを変更すると、結果がまったく異なる可能性があります。
したがって、それを避けるために、comapreTo 関数を再実装して、最初の値が同じ場合に備えて 2 番目の値を比較できます。たとえば、2 つの文字列 s1 と s2 に一致する 2 つの num: n1 と n2 がある場合は、次のようにする必要があります。
int comparison = n1.compareTo(n2);
if (comparison == 0){
return s1.compareTo (s2));
}
もちろん、n1==n2 と s1==s2 の両方の場合、まだ問題があります。しかし、すべてのデータが同じであれば、オブジェクトは同等であるため、これは問題ではないのではないでしょうか? ;)
役立つことを願っています