Lambda表达式 入门实战
发布日期:2021-06-30 17:37:16 浏览次数:2 分类:技术文章

本文共 7057 字,大约阅读时间需要 23 分钟。

import cn.sh.ideal.bean.UserBean;import java.util.*;import java.util.function.Function;import java.util.stream.Collectors;import java.util.stream.Stream;/** * Lambda表达式写法 * * @author gilbert */public class LambdaDemo {    /**     * 功能描述 无参无返回值     *     * @param list     * @return void     * @author gilbert     * @date 2019/6/12     */    public static void lambdaWithParamAndNoReturn(List
list) { list.forEach(userBean -> System.out.println("hello," + userBean.getUsername())); } /** *功能描述 重新封装集合数据 * @author gilbert * @date 2019/6/12 * @param [list] * @return void */ public static void initList(List
list){ List
userList = list.stream().map(userBean -> new UserBean(userBean.getUserid(), userBean.getWorkid(), userBean.getUsername())).collect(Collectors.toList()); userList.forEach(userBean -> System.out.println("new list:" + userBean.getUsername())); } /** *功能描述 集合过滤 * @author gilbert * @date 2019/6/12 * @param [list] * @return void */ public static void filterList(List
list){ //List
filterList = list.stream().filter(userBean -> userBean.getUsername().contains("g")).collect(Collectors.toList()); List
filterList = list.stream().filter(userBean -> Integer.valueOf(userBean.getUserid()) > 6).collect(Collectors.toList()); filterList.forEach(userBean -> System.out.println("filter list:" + userBean.getUsername())); } /** *功能描述 排序 * @author gilbert * @date 2019/6/12 * @param [list] * @return void */ public static void sortList(List
list){ //按userid排序 List
sortList = list.stream().sorted((userBean1,userBean2) -> userBean1.getUsername().compareTo(userBean2.getUsername())).collect(Collectors.toList()); sortList.forEach(userBean -> System.out.println("sortList:" + userBean.getUserid() + "," + userBean.getUsername())); } /** *功能描述 多条件排序 * @author gilbert * @date 2019/6/12 * @param [list] * @return void */ public static void multiSortList(List
list){ list.sort(Comparator.comparing(UserBean::getUserid).thenComparing(UserBean::getUsername)); list.forEach(userBean -> System.out.println("multiSortList:" + userBean.getUserid() + "," + userBean.getUsername())); } /** *功能描述 倒序 * @author gilbert * @date 2019/6/12 * @param [list] * @return void */ public static void reversedSortList(List
list){ //第一种写法 Comparator
comparator = (userBean1,userBean2) -> userBean1.getUsername().compareTo(userBean2.getUsername()); list.sort(comparator.reversed()); //第二种写法 //list.sort(Comparator.comparing(UserBean::getUserid).reversed()); list.forEach(userBean -> System.out.println("reverseSortList:" + userBean.getUserid() + "," + userBean.getUsername())); } /** *功能描述 多条件倒序 * @author gilbert * @date 2019/6/12 * @param [list] * @return void */ public static void multiReversedSortList(List
list){ list.sort(Comparator.comparing(UserBean::getUserid).thenComparing(UserBean::getUsername).reversed()); list.forEach(userBean -> System.out.println("multiReversedSortList:" + userBean.getUserid() + "," + userBean.getUsername())); } /** *功能描述 集合分组 * @author gilbert * @date 2019/6/12 * @param [list] * @return void */ public static void groupByList(List
list){ Map
> groupByMap = list.stream().collect(Collectors.groupingBy(UserBean::getWorkid)); groupByMap.forEach((k,v) -> System.out.println(k+"," + v)); } /** *功能描述 求和 * @author gilbert * @date 2019/6/12 * @param [list] * @return void */ public static void sumByList(List
list){ System.out.println("sum="+ list.stream().mapToInt(UserBean::getUserid).sum()); } /** *功能描述 最大值 * @author gilbert * @date 2019/6/12 * @param [list] * @return void */ public static void maxByList(List
list){ OptionalInt optional = list.stream().mapToInt(UserBean::getUserid).max(); System.out.println("max=" + optional.getAsInt()); } /** *功能描述 最小值 * @author gilbert * @date 2019/6/12 * @param [list] * @return void */ public static void minByList(List
list){ OptionalInt optional = list.stream().mapToInt(UserBean::getUserid).min(); System.out.println("min=" + optional.getAsInt()); } /** *功能描述 平均值 * @author gilbert * @date 2019/6/12 * @param [list] * @return void */ public static void averageByList(List
list){ OptionalDouble optionalDouble = list.stream().mapToInt(UserBean::getUserid).average(); System.out.println("average=" + optionalDouble.getAsDouble()); } /** *功能描述 List转map * @author gilbert * @date 2019/6/12 * @param [list] * @return void */ public static void listToMap(List
list){ //用 (k1,k2)->k1 来设置,如果有重复的key,则保留key1,舍弃key2 Map
map = list.stream().collect(Collectors.toMap(UserBean::getUserid,userBean -> userBean, (k1, k2) -> k1)); map.forEach((k,v) -> System.out.println("k=" + k + ",v=" + v)); } /** *功能描述 map转list * @author gilbert * @date 2019/6/12 * @param [map] * @return void */ public static void mapToList(Map
map){ List
list = map.entrySet().stream().sorted(Comparator.comparing(key -> key.getKey())).map(key -> new UserBean(Integer.valueOf(key.getKey()),key.getValue(),key.getValue())).collect(Collectors.toList()); list.forEach(userBean -> System.out.println(userBean.getUserid() + "," + userBean.getUsername())); } /** *功能描述 字符串转list * @author gilbert * @date 2019/6/12 * @param [str] * @return void */ public static void stringToList(String str){ //不需要处理 //
list = Arrays.asList(str.split(",")); //需要处理 List
list = Arrays.asList(str.split(",")).stream().map(string -> String.valueOf(string)).collect(Collectors.toList()); list.forEach(string -> System.out.println(string)); } /** *功能描述 姓名以逗号拼接 * @author gilbert * @date 2019/6/12 * @param [list] * @return void */ public static void joinStringValueByList(List
list){ System.out.println(list.stream().map(UserBean::getUsername).collect(Collectors.joining(","))); } /** *功能描述 分组统计 * @author gilbert * @date 2019/6/12 * @param [list] * @return void */ public static void countByList(List
list){ Map
map = list.stream().collect(Collectors.groupingBy(UserBean::getWorkid,Collectors.counting())); map.forEach((k,v) -> System.out.println("key=" + k + ",value=" + v)); } public static void main(String[] args) { //List
list = Arrays.asList(new UserBean(1, "AKB001", "gilbert"), new UserBean("2", "AKB002", "apple"), new UserBean("3", "AKB003", "cat")); List
list = Stream.of(new UserBean(1, "AKB001", "gilbert"), new UserBean(2, "AKB002", "apple"), new UserBean(4, "AKB004", "dog"), new UserBean(5, "AKB005", "egg"), new UserBean(6, "AKB006", "frog"), new UserBean(6, "AKB006", "banana"), new UserBean(7, "AKB007", "google"), new UserBean(3, "AKB003", "cat")) .collect(Collectors.toList()); lambdaWithParamAndNoReturn(list); initList(list); filterList(list); sortList(list); reversedSortList(list); multiSortList(list); multiReversedSortList(list); groupByList(list); sumByList(list); maxByList(list); minByList(list); averageByList(list); listToMap(list); String str = "apple,banana,cat,dog"; stringToList(str); Map
map =new HashMap
() { { put(1, "apple"); put(2, "banana"); put(3, "cat"); put(4, "dog"); put(5, "frog"); } }; mapToList(map); joinStringValueByList(list); countByList(list); }}

 

转载地址:https://lemonstone.blog.csdn.net/article/details/107559600 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:加密简介
下一篇:JAVA 获取操作系统属性

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月13日 03时09分53秒