Vatsalラーフル:
私はJavaの春ブーツを使用していますので、私は、ソートのことをやっていると私は、現在のソート順のストリームを使用しています
ソートコードは次のとおりです -
projectResponse.setDetails(v.stream()
.sorted(Comparator.comparing(StateResponse::getState)
.thenComparing(Comparator.comparing(NameResponse::getName)))
.collect(Collectors.toList()));
名前で最初の状態によると、その後ソートします。
「名前-98」、「名前-99」、「名前-100」そう、99まで正しくソートが、100が来るとき、それは最初にソートされた番号で、その後、ソート、ソートされてから、正しいです:私の名前は次のように値の何かを持っていますNOは999を横断して、正しく1000,1001から来るということだソートする時期100101102と、この状況は再び来ます。それを克服するための最善の解決策は何ですか?
jspcal:
それは同時に、アルファベット順にテキストをソートしながら、番号順に数字を並べ替えカスタムコンパレータを使用すると便利です。これは、しばしば、「自然のソート」と呼ばれています。:ここではそれを行う一つの実施だhttp://www.davekoelle.com/alphanum.htmlが。
あなたのストリーム操作でそれを使用するには:
thenComparing(NameResponse::getName, new AlphanumComparator())