首页 > 其他分享 >工作中常用lambda表达式-增加代码的逼格

工作中常用lambda表达式-增加代码的逼格

时间:2023-07-13 17:11:15浏览次数:41  
标签:stream Collectors Person List 逼格 list collect 表达式 lambda

  • List 转 String 字符串用逗号分割
普通方式
List<Long> useridList = authoritativeVO.getUserList();
int count = 0;
StringBuilder targetStr = new StringBuilder();
for(int i=0;i<useridList.size();i++){
	targetStr.append(useridList.get(i));
	count++;
	if(count<useridList.size()){
		targetStr.append(",");
	}
}
System.out.println(targetStr.toString());  

lambda方式
String deptIds = authoritativeVO.getUseridList().stream().map(i -> String.valueOf(i)).collect(Collectors.joining(","));
  • 查询18岁学生的id列表
##1.查询18岁的学生列表
List<Student> studentList = studentService.list(Wrappers.<Student>lambdaQuery().eq(Student::getAge,18);

##2.普通方式获取18岁学生列表的id
List<Long> idList = new ArrayList<>();
for(Student stu : studentList){
  idList.add(stu.getId());
}

##2.lambda获取18岁学生列表的id
List<Long> ids = studentList.stream().map(Student::getId).collect(Collectors.toList());
  • List 转Map
//list 转map
普通方式
Map<String,Person> map = new HashMap<>();
for (Person person:list) {
    map.put(person.getName(),person);
}

lambda方式
Map<String,Person> map1 = list.stream().collect(Collectors.toMap(Person::getName, t->t));
Map<String,Address> map2 = list.stream().collect(Collectors.toMap(Person::getName, t->t.getAddress()));
Map<String,Integer> map4 = list.stream().collect(Collectors.toMap(Person::getName, t->t.getAge()));
Map<String,Integer> map3 = list.stream().collect(Collectors.toMap(Person::getName, Person::getAge));
  • List 分组

普通方式
Map<Integer,List<Person>> mapt = new HashMap<>();
for (Person person:list){
    if(mapt.containsKey(person.getAge())){
        List<Person> people = mapt.get(person.getAge());
        people.add(person);
    }else{
        List<Person> people = new ArrayList<>();
        people.add(person);
        mapt.put(person.getAge(),people);
    }
}

lambda方式
Map<Integer,List<Person>> listMap = list.stream().collect(Collectors.groupingBy(Person::getAge));
  • Map 转 List
List collect = listMap.values().stream().collect(Collectors.toList());
  • 过滤
List<String> stringList = list.stream().map(s -> s.getName()).filter(s -> !s.isEmpty()).collect(Collectors.toList());
List<Person> personList = list.stream().filter(s -> !s.getName().isEmpty()).collect(Collectors.toList());
  • 所使用的JAVA测试类如下
@Data
@Accessors(chain = true)
@AllArgsConstructor
public class Address {
    private String province; //省
    private String city; //市
    private String county; //县
}

@Data
@Accessors(chain = true)
@AllArgsConstructor
public class Person {
    private String name;
    private int age;
    private Address address;
}

标签:stream,Collectors,Person,List,逼格,list,collect,表达式,lambda
From: https://www.cnblogs.com/sansyou/p/17534004.html

相关文章

  • 正则表达式符号字符大全
    正则表达式符号字符大全正则表达式[1]由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义,我们下面会给予解释。在最简单的情况下,一个正则表达式看上去就是一个普通的查找串。例如,正则表达式"testing"中没有包含任何元字符......
  • 告别手写正则表达式了
    可以彻底告别手写正则表达式了这篇文章的目的是让你能得到完美的正则表达式,而且还不用自己拼。说到正则表达式,一直是令我头疼的问题,这家伙一般时候用不到,等用到的时候发现它的规则是一点儿也记不住,\d表示一个数字,\s表示包括下划线在内的任意单词字符,也就是[A-Za-z0-9_],还有[\s......
  • python正则表达式中怎么引用变量 这个问题怎么解决?
    项目方案:使用Python正则表达式引用变量1.简介Python正则表达式是一种强大的文本处理工具,可以用于匹配、搜索、替换和验证字符串。在正则表达式中,有时候需要使用变量来引用匹配结果或者动态地构建正则表达式模式。本项目方案将介绍如何在Python正则表达式中引用变量,以及如何使用......
  • 现代C++(Modern C++)基本用法实践:二、Lambda表达式
    概述lambda表达式,有时也被称为匿名函数。他提供了简短的,内联的函数对象。用法形式如:[capture](parameters)->return_type{body}具体用法如下文举例它的实现是由编译器决定的,在我的编译器上他是通过创建一个匿名类,通过重载()运算符,成为一个可调用对象,从而实现调用,类似://......
  • Shell | 正则表达式
    正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。在Linux中,grep,sed,awk等文本处理工具都支持通过正则表达式进行模式匹配。常规匹配一串不包含特殊字符的正则表达式匹配它自......
  • 如何实现正则表达式 ios兼容的具体操作步骤
    正则表达式iOS兼容性正则表达式是用于匹配和操作字符串的强大工具。在iOS开发中,我们经常需要使用正则表达式来验证、解析和转换字符串。然而,不同版本的iOS系统对正则表达式的支持有所不同。本文将介绍如何在iOS中使用正则表达式,并解释其兼容性问题。正则表达式基础正则表达式是......
  • 题:10. 正则表达式匹配
    leetcode题:(https://leetcode.cn/problems/regular-expression-matching/)给你一个字符串s和一个字符规律p,请你来实现一个支持'.'和'*'的正则表达式匹配。'.'匹配任意单个字符'*'匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。示......
  • 玩转Python正则表达式:实用教程带你快速入门
    引言正则表达式是一种强大的文本匹配和处理工具,广泛应用于各种编程语言中。在Python中,我们可以使用内置的re模块来处理正则表达式。本文将带您从入门到精通,逐步介绍Python中的正则表达式用法,并提供实例演示。1.正则表达式基础1.1什么是正则表达式正则表达式是一种用于描述和......
  • 正则表达式
    正则表达式一、正则表达式简介正则表达式(RegularExpression)是一种文本模式,包括普通字符(如字母和数字)和特殊字符(也就是元字符),它使用单个字符串来描述、匹配一系列的符合某个句法规则的字符串。许多程序设计语言都支持正则表达式来进行字符串的操作。正则表达式描述了一种字......
  • python过滤器filter()及lambda表达式的应用
    一、filter()方法介绍:filter()是Python内置的一个函数,用于根据指定的条件对可迭代对象进行筛选,返回符合条件的元素。filter()函数的语法如下:filter(function,iterable)其中function是一个函数或可调用对象,表示用于判断每个元素是否符合条件的函数。iterable则是一个可......