0

我想选择 java List 的前 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);
    }
}
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在这里没有真正的用处。由于您只要求获取列表的一部分,而不是以任何方式对其进行修改,因此使用Lists 内置方法是最好的解决方案。

如果你真的想用lambdaj,LambdaList有一个subList()方法,不过和 Java SE 的接口完全一样。List

于 2011-12-06T18:55:58.797 回答