天天看点

简单的Lambda表达式(适用JAVA初学者2)

用于运行线程的Lambda表达式

您可以使用lambda表达式来运行线程。在以下示例中,我们通过使用lambda表达式实现run方法。

public class ThreadExample{
  public static void main(String[] args) {
        //Thread Example without lambda  
        Runnable r1=new Runnable(){  
            public void run(){  
                System.out.println("Thread1 is running...");  
            }  
        };  
        Thread t1=new Thread(r1);  
        t1.start();  
        //Thread Example with lambda  
        Runnable r2=()->{  
                System.out.println("Thread2 is running...");  
        };  
        Thread t2=new Thread(r2);  
        t2.start();  
  }
}      

输出量

Thread1 is running...
Thread2 is running...      

Lambda表达式以比较和过滤集合列表

class Product{  
    int id;  
    String name;  
    float price;  
    public Product(int id, String name, float price) {  
        super();  
        this.id = id;  
        this.name = name;  
        this.price = price;  
    }  
}  

public class FilterListExample{
  public static void main(String[] args) {
        List<Product> list=new ArrayList<Product>();  
        list.add(new Product(1,"Volvo",19000f));  
        list.add(new Product(3,"Tesla",75000f));  
        list.add(new Product(2,"Toyota",38000f)); 

        // using lambda to filter data  
        Stream<Product> filtered_data = list.stream().filter(p -> 
        p.price > 3000);  

        // using lambda to iterate through collection  
        filtered_data.forEach(  
                product -> System.out.println(product.name+": 
        "+product.price)   
       );
  }
}

      
Tesla: 75000.0
Toyota: 38000.0      

使用Lambda表达式时要注意的几点

Lambda表达式的主体可以包含零个,一个或多个语句。

如果只有一条语句,则不必使用大括号,并且匿名函数的返回类型与主体表达式的返回类型相同。

如果有多个语句,则必须将它们括在大括号(一个代码块)中,并且匿名函数的返回类型与该代码块内返回的值的类型相同;如果不返回任何值,则返回void

为什么使用Lambda表达式

这是使用Lambda表达式的一些好处。

1.更少的代码行:

使用lambda表达式的好处之一是减少了代码量。

2.通过在方法中传递行为来支持顺序和并行执行:

随着Java 8中Stream API的引入,可以将函数传递给收集方法,现在由收集负责以顺序或并行方式处理元素。

3.更高的效率(利用多核CPU):

如果对集合进行批量操作,则使用Stream API和lambda表达式可以实现更高的效率(并行执行)。同样,lambda表达式可以帮助实现集合的内部迭代,而不是如上例所示的外部迭代。如今,我们拥有带多核的CPU,因此可以通过使用lambda并行处理集合来利用这些多核CPU。

总之,欢迎使用Lambda表达式添加到任何代码库中,本文旨在展示如何使用和应用它们的指针。