我想选择一个java列表的前3项。
我知道如何排序列表(请参阅代码),但我不知道如何选择该列表中具有最大值的前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);
}
}
为什么使用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
接口中的相同。