こんにちは、私は、データの以下のようなものが含まれている私の配列リストをソートする必要があります。JavaのソートオブジェクトのArrayListが
name1 1111 1622 122ks
name3 1211 4122 1aks
name2 1113 1322 12sks
name10 2111 1222 12dks
...
name4 asd1 2334 asd8
日付を移入するための単純なモデルクラスがあります!さて、名前の基底、すなわちname1とname2との比較などを行いたい。このために私は次のようにしています:
public class ABC implements Comparator<MyModel> {
@Override
public int compare(MyModel o1, MyModel o2) {
return o1.name.compareTo(o2.name);
}
}
これは私に必要な出力を与えます!名前は、私は10 11 12の後に名前を平均10以上がある場合でも、私は必要があるとして、私のコンパレータは文句を言わない私に必要なソートされたリストを与えると、出力は次のようになります。私が間違ってやって
name1 1111 1622 122ks
name10 1211 4122 1aks
name11 1113 1322 12sks
name12 2111 1222 12dks
...
name2 asd1 2334 asd8
... (sorted so on)
何?私がやっているやり方は間違っているのですか、それを達成するための他の方法がありますか?前もって感謝します!
これから
substring
にインデックスを保存することができますソートは、スペース文字がソート順に数字などの他の文字よりも低いとみなされるために発生します。また、各文字は個々に比較され、数値に集計されることはありません。期待どおりに処理されている数値でソートする場合は、独自のコンパレータを記述する必要があります。 – Jason