[解決済み】Java8のラムダを使用してストリームを逆順に並べ替えるにはどうすればよいですか?
2022-04-04 15:06:49
質問
java lambdaを使ってリストをソートしています。
逆順に並べ替えるにはどうしたらいいですか?
私はこれを見た ポスト しかし、私はjava 8 lambdaを使いたいのです。
以下は私のコードです(ハックとして * -1 を使用)。
Arrays.asList(files).stream()
.filter(file -> isNameLikeBaseLine(file, baseLineFile.getName()))
.sorted(new Comparator<File>() {
public int compare(File o1, File o2) {
int answer;
if (o1.lastModified() == o2.lastModified()) {
answer = 0;
} else if (o1.lastModified() > o2.lastModified()) {
answer = 1;
} else {
answer = -1;
}
return -1 * answer;
}
})
.skip(numOfNewestToLeave)
.forEach(item -> item.delete());
解決方法は?
でリンクした解決策を適用することができます。 JavaでArrayList<Long>を降順にソートする方法は? をラムダで包む。
.sorted((f1, f2) -> Long.compare(f2.lastModified(), f1.lastModified())
をメモしておく。
f2
の第1引数です。
Long.compare
であり、2番目ではないので、結果は逆になります。
関連
-
[解決済み] java.lang.IncompatibleClassChangeError: Mongo クラスを実装しています。
-
[解決済み] init-paramとcontext-param
-
[解決済み] java.net.URLConnectionを使用してHTTPリクエストを発生させ処理する方法
-
[解決済み] Java 8 StreamをArrayに変換する方法は?
-
[解決済み] 可能な限り常にパラレルストリームを使用した方がいいのでしょうか?
-
[解決済み] IteratorをStreamに変換するには?
-
[解決済み] Java 8でラムダをパラメータとして受け取るメソッドを定義するにはどうすればよいですか?
-
[解決済み】Java8: HashMap<X, Y> から HashMap<X, Z> へ Stream / Map-Reduce / Collector を使って変換する。
-
[解決済み] Java 8 ストリーム逆順
-
[解決済み] java8のストリームで処理の順番を確保する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] トークンのシンタックスエラー、これらのトークンを削除してください [closed].
-
[解決済み] 一部の入力ファイルが非推奨のAPIを使用またはオーバーライドしている
-
[解決済み] Java UnknownFormatConversionException
-
[解決済み] Java Swingで複数のボタンに対して複数のActionListenersを追加する方法
-
[解決済み] javascriptでExpression言語を使うには?
-
[解決済み] mavenのコンパイルに失敗するのはなぜですか?
-
[解決済み] eclipseからTomcatに物理的に発行されるmyjspはどこにあるのでしょうか?
-
[解決済み] Eclipseでクラスとそれに対応するファイルの名前を変更する方法は?
-
[解決済み] java swingアプリケーションでJCEがプロバイダBCを認証できない
-
[解決済み] Comparator.reversed()がラムダを使用してコンパイルされない