2011-12-06 16 views
0

Javaリストの上位3項目を選択したいと思います。lambdajを使用してリストの上位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); 
    } 
} 
+0

私は 'subList' **は**あなたがそれを行う方法ですが(しかし、リスト_view_を返すことを念頭に置いてください)と思います。 – Xaerxess

答えて

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を使用したい場合は、LambdaListsubList()方法がありますが、それは、Java SEのListインタフェースの一つとして正確同じです。

関連する問題