0

Javaリストの上位3項目を選択したい。

リストを並べ替える方法は知っていますが(コードを参照してください)、このリストの中で最も高い値( [3.0、5.5、7.2] )を持つ上位3つのエントリを選択する方法がわかりません。

subList()を使用できると思いますが、lambdajでこれを行う方法があるかどうかを知りたいです。

import java.util.Arrays;
import java.util.List;
import static ch.lambdaj.Lambda.*;

public class Example {
    public static void main(String[] args)
    {
        List<Double> list = Arrays.asList(5.5,1.5,7.2,3.0,0.5);
        System.out.println(list);
        List<Double> sortedList = sort(list,on(Double.class).doubleValue());
        System.out.println(sortedList);
    }
}
4

1 に答える 1

2

lambdajを使用する理由 これは、次のように実行できる単純なタスクです。

List<Double> list = Arrays.asList(5.5,1.5,7.2,3.0,0.5);
System.out.println(list);

List<Double> sortedList = sort(list, on(Double.class).doubleValue());
System.out.println(Arrays.toString(sortedList.subList(0, 2).toArray()));

lambdajここでは実際の使用はありません。リストの一部を取得することのみを求めており、それを変更することは求めていないため、List組み込みメソッドを使用するのが最善の解決策です。

本当に使いたい場合は、lambdajメソッドがありますが、それはJava SE のインターフェースのものとまったく同じです。LambdaListsubList()List

于 2011-12-06T18:55:58.797 に答える