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(Listlist) { 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月13日 03时09分53秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
tf 从RNN到BERT
2019-04-30
tf keras SimpleRNN源码解析
2019-04-30
tf keras Dense源码解析
2019-04-30
tf rnn输入输出的维度和权重的维度
2019-04-30
检验是否服从同一分布
2019-04-30
tf callbacks
2019-04-30
keras、tf、numpy实现logloss对比
2019-04-30
Ubuntu20.04安装微信
2019-04-30
Restful风格的使用
2019-04-30
Swagger基础入门整合SpringBoot
2019-04-30
MyBatisPlus简单入门(SpringBoot)
2019-04-30
攻防世界web进阶区NewsCenter详解
2019-04-30
攻防世界web进阶PHP2详解
2019-04-30
如何解决词达人问题(新)
2019-04-30
攻防世界web进阶区surpersqli详解
2019-04-30
攻防世界web进阶区easytornado详解
2019-04-30
攻防世界web进阶区web2详解
2019-04-30
xss-labs详解(上)1-10
2019-04-30
xss-labs详解(下)11-20
2019-04-30
攻防世界web进阶区ics-05详解
2019-04-30