package com.integration;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @description lambda表达式练习
* @author hu
* @datetime 2020-9-15 17:18:03
*/
public class TestLambda {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
// 获取对应的平方数
// List<Integer> squaresList = numbers.stream().map( i -> i*i).distinct().collect(Collectors.toList());
List<Integer> squaresList = numbers.stream()
.map(i -> i * i)
.sorted((x, y) -> y - x) // 根据数字大小排序(倒叙)
.collect(Collectors.toList());
// squaresList.forEach(System.out::println);
squaresList.forEach(num -> {
num++;
System.out.println(num);
});
List<String> strList = Arrays.asList("a", "bb", "bc", "abc", "cbb", "ba", "cab");
Map<Integer, String> strMap = new HashMap<Integer, String>();
// 转map和排序不能同时用,否则排序不生效
List<String> newstrList = strList.stream()
// .sorted((x, y) -> y.length() - x.length()) // 根据字符串长度排序(倒叙)
.sorted(Comparator.reverseOrder()) // 根据字母排序(倒叙)
.collect(Collectors.toList());
// list转map::stream方式
strMap = newstrList.stream()
.collect( Collectors.toMap( str -> newstrList.indexOf(str), str -> str ) );
newstrList.forEach(str -> System.out.println(str));
strMap.forEach((key, value) -> {
System.out.println(key+"::"+value);
});
}
}
lambda表达式练习
最新推荐文章于 2022-09-05 23:55:50 发布