lambda表达式filter使用

news/2025/4/2 9:32:24/

filter经常使用到,作为一个积累,直接贴代码

实体类

public class User implements Serializable {private String name;private Integer age;private String address;private BigDecimal balance;private Date createTime;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public BigDecimal getBalance() {return balance;}public void setBalance(BigDecimal balance) {this.balance = balance;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", age=" + age +", address='" + address + '\'' +", balance=" + balance +", createTime=" + createTime +'}';}
}

测试类

public static void main(String[] args) {List<User> userList = getUser();//搜索年龄只有100的城市userList = userList.stream().filter(user -> user.getAge() != null && user.getAge().equals(100)).collect(Collectors.toList());userList.stream().forEach(user -> {System.out.println(user.getName());});System.out.println("==========================================");//查找这些城市是否包含了武汉if(userList.stream().filter(user -> user.getName().equals("武汉")).findAny().isPresent()){System.out.println("该列表有有包含武汉!");}//anyMatch判断if(userList.stream().anyMatch(user -> user.getName().equals("武汉"))){System.out.println("该列表有有包含武汉!");}}public static List<User> getUser() {List<User> users = Lists.newArrayList();User user1 = new User();user1.setName("北京");user1.setAge(100);user1.setBalance(new BigDecimal(3000));users.add(user1);User user2 = new User();user2.setName("上海");user2.setAge(200);user2.setBalance(new BigDecimal(2000));users.add(user2);User user3 = new User();user3.setName("广州");user3.setAge(200);users.add(user3);User user4 = new User();user4.setName("深圳");user4.setAge(100);user4.setBalance(new BigDecimal(1000));users.add(user4);User user5 = new User();user5.setName("武汉");user5.setAge(100);user5.setBalance(new BigDecimal(3000));users.add(user5);return users;}

总结

通过条件进行筛选:

 userList = userList.stream().filter(user -> user.getAge() != null && user.getAge().equals(100)).collect(Collectors.toList());

list是否包含某个值:

if(userList.stream().filter(user -> user.getName().equals("武汉")).findAny().isPresent()){System.out.println("该列表有有包含武汉!");}//anyMatch判断if(userList.stream().anyMatch(user -> user.getName().equals("武汉"))){System.out.println("该列表有有包含武汉!");}

 


http://www.ppmy.cn/news/970163.html

相关文章

JAVA Lambda表达式过滤

1. list字符串去重List<String> unique list.stream().distinct().collect(Collectors.toList());2.集合对象去重// Person 对象 public class Person {private String id;private String name;private String sex;<!--省略 get set--> }// 根据name去重 List<…

python lambda 判断_关于 Python中lambda 使用

在学习python的过程中,lambda的语法时常会使人感到困惑,lambda是什么,为什么要使用lambda,是不是必须使用lambda? 下面就上面的问题进行一下解答。 1、lambda是什么? 看个例子: 1 g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2) >>>3 当然,你也…

python key=lambda函数_Python lambda函数,pythonlambda

lambda x: 3*x+1 怎么用它呢 , 来给它一个名字 g = lambda x:3*x+1 调用一下它 g(2) 如果想有多个input怎么办? 比如说想把 first name 和 last name 合起来 ? full_name = lambda fn,ln: fn.strip().title() + " " +ln.srip().title() .tit…

C#中Lambda表达式总结

在C#的语法中有一种比较特殊的写法&#xff0c;叫做Lambda表达式&#xff0c;这种表达式的写法在于你查询数据的时候直接是使用以下箭头的形式来表示查询语句的&#xff1a;>。例如&#xff0c;我们要查找学生的List集合中班级编号为1001的所有学生数据&#xff0c;我们即可…

Groovy之lambda表达式

Lambda表达式表示匿名函数&#xff0c;和匿名类对比&#xff0c;即不需要申明式函数的方法名和返回值&#xff0c;用表达式的形式完成函数的参数和相关逻辑。 Lambda表达式应用于Groovy和Kotlin中&#xff0c;作为实现函数式编程的关键&#xff0c;&#xff08;函数式编程是指…

matlab的lambda,lambda算法matlab

算法 Rxx=zeros(M,M); Rxx=(XX.*(XX.))/pd;%M*M 维 detaS=IS; Wmvdr=inv(Rxx)*detaS*inv(detaS*inv(Rxx)*detaS); %MVDR 算法 %% 直线...... ( ores , 1 ) < ostd break ; end t = lam * t ; % 保存新状态能量 外循环终止准则 :连续 olen 个状态能量波动小于 ostd 模拟火算法…

lambda累加求和

一、关键方法 // 整形list.stream().mapToInt(a->a.getCount()).sum()// double类型 list.stream().mapToDouble(a->a.getWeight()).sum();// Long类型 list.stream().mapToLong(a -> a.getPri()).sum();// BigDecimal类型 list.stream().map(Animal::getMoney).redu…

QT中lambda表达式

1.因为lambda表达式是c11的特性 我们5.5及以上版本是支持的&#xff0c;5.4及一下需要在.pro文件中加入 CONFIG c11 lambda 的语法形式如下&#xff1a; [函数对象参数] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体}可以看到&#xff0c;Lam…