在java 1.8中使用lambda时出错

时间:2015-10-28 09:27:49

标签: java lambda

public static void main(String[] args) {
    List<Integer> list = Arrays.asList(4, 5, 6, 7);
    list.forEach(x -> {
        x = x * 9;
        System.out.println(x);
    });

    JButton btn = new JButton("aa");

    ActionListener ae = e -> {};
    btn.addActionListener(ae);

    List<Student> stds = new ArrayList<>();

    for(int i =0; i < 10; i++)
    {
        stds.add(new  Student((int)(Math.random()*100), (int)(Math.random()*100)));            
    }

    System.out.println("Original List");
    stds.forEach(x -> System.out.println(x));

    System.out.println("\nModified List"); 
    filter(stds,x->x.gpa>15).forEach(x -> System.out.println(x));

    System.out.println(convert(51,t->String.valueOf(t)));

}

这是我的教师代码,它是100%正确的但是当我在我的PC上运行时它给我错误。我认为问题是我的IDE ??

1 个答案:

答案 0 :(得分:0)

我认为这是错误的。

System.out.println("\nModified List"); 
filter(stds,x->x.gpa>15).forEach(x -> System.out.println(x));

你过滤了什么?您可以在流中使用过滤器。 例如:

list.stream().filter(your predicate).forEach(do something);

我想你想要这样的东西:

stds.stream().filter(x->x.gpa>15).forEach(x -> System.out.println(x));