使用lambdaj选择List的前3项



我想选择一个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接口中的相同。

相关内容

  • 没有找到相关文章

最新更新