您的位置:首页 > 编程语言 > Java开发

java 1.8 Lambda的简单使用举例

2018-03-22 16:11 375 查看
1.创建线程

new Thread(new Runnable() {
public void run() {
System.out.println("Before Java8, too much code for too little to do");
}
}).start();
new Thread( () -> System.out.println("In Java8, Lambda expression rocks !!") ).start();


2.监听器

JButton show =  new JButton("Show");
show.addActionListener((e) -> {
System.out.println("In Java8, Lambda expression rocks !!");
});


3.遍历

List features = Arrays.asList("Lambdas", "Default Method", "Stream API", "Date and Time API");
features.forEach(str -> System.out.println(str));
features.forEach(System.out::print);


4.搜索或过滤(用到了Predicate)

Predicate<String> containA = (str) -> str.contains("am");
Predicate<String> lengthEight = (str) -> str.length() < 8;
features.stream().filter(containA.and(lengthEight)).forEach(str -> System.out.println(str));

5.修改List中数据

List<Double> costBeforeTax = Arrays.asList(100.0, 200.0, 300.0, 400.0, 500.0);
Stream<Double> costBeforeTax2 = costBeforeTax.stream().map((cost) -> cost + .12*cost);
System.out.println(costBeforeTax2);
costBeforeTax2.forEach((tem) -> System.out.println(tem));
costBeforeTax.forEach(System.out::print);

6.过滤
List<String> strList = Arrays.asList("Lamb", "Def", "St", "Datea");
List<String> filtered = strList.stream().filter(str -> str.length() > 2).collect(Collectors.toList());
filtered.forEach(System.out::println);

7.类似数据库,IntSummaryStatistics的使用
List<Integer> primes = Arrays.asList(2, 3, 5, 7, 11, 13, 17, 19, 23, 29);
IntSummaryStatistics summary = primes.stream().mapToInt((n) -> n).summaryStatistics();
System.out.println("Highest prime number in List : " + summary.getMax());
System.out.println("Lowest prime number in List : " + summary.getMin());
System.out.println("Sum of all prime numbers : " + summary.getSum());
System.out.println("Average of all prime numbers : " + summary.getAverage());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: