我想选择一个java List的前三项。
我知道如何对List进行排序(请参阅代码),但我不知道如何选择此列表中具有最高值的前3个条目( [3.0,5.5,7.2] )。
我想我可以使用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 :(得分: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
,LambdaList
使用subList()
方法,但完全与Java SE的List
接口中的那个。