常用Lambda表达式详解

Lambda表达式遍历List集合
List<String> list = Arrays.asList("A","C","B","D");
System.out.println("--------------------------");
list.forEach(a -> System.out.println(a));
System.out.println("--------------------------");
list.forEach(System.out::println);

运行结果

--------------------------
A
C
B
D
--------------------------
A
C
B
D
Lambda表达式排序List集合
//使用比较器排序
List<String> list = Arrays.asList("A","C","B","D");
Collections.sort(list, new Comparator<String>() {
	@Override
	public int compare(String o1, String o2) {
		return o1.compareTo(o2);
	}
});
System.out.println(list);
//使用Lambda表达式
List<String> list1 = Arrays.asList("A","C","B","D");
Collections.sort(list1, (o1,o2)-> o1.compareTo(o2));
System.out.println(list1);

运行结果

[A, B, C, D]
[A, B, C, D]
Lambda表达式过滤List集合
//不使用Lambda表达式
List<String> list = Arrays.asList("Aa","C","aB","D");
List<String> filterList = new ArrayList<String>();
for (String str: list) {
	if (str.contains("a")) {
		filterList.add(str);
	}
}
System.out.println(filterList);
//使用Lambda表达式
List<String> list1 = Arrays.asList("Aa","C","aB","D");
List<String> filterList1 = list1.stream().filter(str-> str.contains("a")).collect(Collectors.toList());
System.out.println(filterList1);

运行结果

[Aa, aB]
[Aa, aB]
Lambda表达式映射集合
//不使用Lambda表达式
List<String> list = Arrays.asList("Aa","C","aB","D");
List<Integer> filterList = new ArrayList<Integer>();
for (String str: list) {
	filterList.add(str.length());
}
System.out.println(filterList);
//使用Lambda表达式
List<String> list1 = Arrays.asList("Aa","C","aB","D");
List<Integer> filterList1 = list1.stream().map(str-> str.length()).collect(Collectors.toList());
System.out.println(filterList1);

运行结果

[2, 1, 2, 1]
[2, 1, 2, 1]
Lambda表达式进行累加
//使用Lambda表达式累加
List<Integer> list = Arrays.asList(1,2,3,4);
int sum = list.stream().reduce(0, (a,b) -> a+b);
System.out.println(sum);

运行结果

10
Lambda表达式进行分组
//不使用Lambda表达式
List<String> list = Arrays.asList("Aa","C","aB","D");
Map<Integer, List<String>> groupMap = new HashMap<Integer, List<String>>();
for (String str: list) {
	if (!groupMap.containsKey(str.length())) {
		groupMap.put((str.length()), new ArrayList<>());
	}
	groupMap.get(str.length()).add(str);
}
System.out.println(groupMap);

//使用Lambda表达式
List<String> list1 = Arrays.asList("Aa","C","aB","D");
Map<Integer, List<String>> groupMap1 = list1.stream().collect(Collectors.groupingBy(str -> str.length()));
System.out.println(groupMap1);

运行结果

{1=[C, D], 2=[Aa, aB]}
{1=[C, D], 2=[Aa, aB]}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值