十个lambda表达式

1. 集合遍历

  • 未使用Lambda表达式
List list = Arrays.asList("apple","banana","orange");
for (String fruit : list) {
	System.out.println(fruit);
}
  • 使用Lambda表达式
List list = Arrays.asList("apple","banana","orange");
list.forEach(fruit -> System.out.println(fruit));

2. 排序

  • 未使用Lambda表达式
List list = Arrays.asList("apple","banana","orange");
Collections.sort(list,new Comparator() {
	public int compare(String s1,String s2) {
		return s1.compareTo(s2);
	}
});
  • 使用Lambda表达式
List list = Arrays.asList("apple","banana","orange");
Collections.sort(list,(s1,s2) -> s1.compareTo(s2));

3. 过滤

  • 未使用Lambda表达式
List list = Arrays.asList("apple","banana","orange");
List fileredList = new ArrayList();
for(String fruit : list) {
	if (fruit.startsWith("a")) {
		filteredList.add(fruit);
	}
}
  • 使用Lambda表达式
List list = Arrays.asList("apple","banana","orange");
List filteredList = list.stream().filter(fruit -> fruit.startsWith("a")).collect(Collectors.toList());

4. 映射

  • 未使用Lambda表达式
List list = Arrays.asList("apple","banana","orange");
List lengths = new ArrayList();
for(String fruit : list) {
	lengths.add(fruit.length());
}
  • 使用Lambda表达式
List list = Arrays.asList("apple","banana","orange");
List lengths= list.stream().map(fruit -> fruit.length()).collect(Collectors.toList());

5. 归约

  • 未使用Lambda表达式
List list = Arrays.asList(1,2,3,4,5);
int sum = 0;
for (int i : list) {
	sum +=i;
}
  • 使用Lambda表达式
List list = Arrays.asList(1,2,3,4,5);
int sum = list.stream().reduce(0,(a,b) -> a+b);

6、分组

  • 未使用Lambda表达式
List list = Arrays.asList("apple","banana","orange");
Map<Integer,List> grouped = new HashMap<Integer,List>();
for(String fruit :list) {
	int length = fruit.length();
	if(!grouped.containsKey(length)) {
		grouped.put(length,new ArrayList());
	}
	grouped.get(length).add(fruit);
}
  • 使用Lambda表达式
List list = Arrays.asList("apple","banana","orange");
Map<Integer,List> grouped = list.stream().collect(Collectors.groupingBy(fruit -> fruit.length()));

7.函数接口调用

  • 未使用Lambda表达式
public interface MyInterface{
	public void doSomething(String input);
}
MyInterface myObject = new MyInterface(){
	public void doSomething(String input) {
		System.out.println(input);
	}
};

myObject.doSomething("Hello World");
  • 使用Lambda表达式
public interface MyInterface{
	public void doSomething(String input);
}
MyInterface myObject = input -> System.out.println(input);
myObject.doSomething("Hello World");

8. 创建线程

  • 未使用Lambda表达式
Thread thread = new Thread(new Runnable() {
	public void run() {
		System.out.println("Thread is running.");
	}
});
  • 使用Lambda表达式
Thread thread = new Thread(() -> System.out.println("Thread is running."));
thread.start();

9. Optional操作

  • 未使用Lambda表达式
String str = "Hello World";
if (str != null) {
	System.out.println(str.toUpperCase());
}
  • 使用Lambda表达式
Optional str = Optional.ofNullable("Hello World");
str.map(String::toUpperCase).ifPresent(System.out::println);

10. Stream流水线操作

  • 未使用Lambda表达式
List list=Arrays.asList("apple","banana","orange");
List filteredList = new ArrayList();
for (String fruit : list) {
	if (fruit.startsWith("a")) {
		filteredList.add(fruit.toUpperCase());
	}
}
Collections.sort(filteredList);
  • 使用Lambda表达式
List list=Arrays.asList("apple","banana","orange");
List filteredList = list.stream().filter(fruit -> fruit.startsWith("a"))
								 .map(String::toUpperCase)
								 .sorted()
								 .collect(Collectors.toList());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值