Java判断List集合中的对象是否包含有某一元素
2023-09-11 14:15:14 时间
关于以下方法,直接可以在自己项目创建一个类,然后进行测试使用!文本末尾也提供了每个方法的运行结果,供大家参考使用!
文章大量使用到了Java8当中的Lambda表达式,以及stream流相关基础知识。如果您用的不熟,没关系,可以直接复制下面的方案然后进行套着使用即可,如果想深入了解的,可以看一下这两篇文章:
Lambda讲解:https://blog.csdn.net/weixin_43888891/article/details/124795863
Stream讲解:https://blog.csdn.net/weixin_43888891/article/details/124657128
@Data
@AllArgsConstructor
@ToString
public class User {
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("性别")
private String gender;
@ApiModelProperty("证件类型")
private String paperworkType;
@ApiModelProperty("证件号码")
private String identityNumber;
}
这里用到了两个函数:
import java.util.*;
import java.util.stream.Collectors;
public class Test {
private static final List<User> userList = Arrays.asList(
new User("张三", "男", "身份证", "350781196403077840"),
new User("李四", "男", "港澳证", "350781196403077840"),
new User("王五", "男", "身份证", "350781196403071166"),
new User("赵六", "男", "身份证", "350781196403076629"),
new User("赵六", "男", "身份证", "350781196403078202"));
private static final List<String> stringList = Arrays.asList("aaa", "bbb", "ccc");
/**
* 判断stringList是否包含某个元素
*/
public static void method1() {
System.out.println(stringList.contains("ccc"));
System.out.println(stringList.contains("ddd"));
}
/**
* 判断userList是否包含身份证号为350781196403077840的人
* 方式一:使用正常的for循环
*/
public static Boolean method2() {
Boolean flag = false;
for (User user : userList) {
if (user.getIdentityNumber().equals("350781196403077840")) {
flag = true;
break;
}
}
return flag;
}
/**
* 判断userList是否包含身份证号为350781196403077840的人
* 方式二:使用stream
*/
public static Boolean method3() {
return userList.stream().anyMatch(p -> p.getIdentityNumber().equals("350781196403077840"));
}
/**
* 判断userList是否包含身份证号为350781196403077840的人
* 两个字段作为条件,一个是证件类型,一个是身份证号,来查询是否有存在的值
*/
public static Boolean method4() {
return userList.stream().anyMatch(p -> p.getIdentityNumber().equals("350781196403077840") && p.getPaperworkType().equals("身份证"));
}
/**
* 返回身份证号为350781196403077840的人的信息,这时候就需要使用filter了
* 两个字段作为条件,一个是证件类型,一个是身份证号,来查询是否有存在的值
*/
public static void method5() {
List<User> user = userList.stream().filter(p -> p.getIdentityNumber().equals("350781196403077840") && p.getPaperworkType().equals("身份证")).collect(Collectors.toList());
user.forEach(System.out::println);
}
public static void main(String[] args) {
System.out.println("-----------------method1---------------------");
method1();
System.out.println("-----------------method2---------------------");
System.out.println(method2());
System.out.println("-----------------method3---------------------");
System.out.println(method3());
System.out.println("-----------------method4---------------------");
System.out.println(method4());
System.out.println("-----------------method5---------------------");
method5();
}
}
输出结果:
相关文章
- Java实现LeetCode #986 - Interval List Intersections
- Java实现LeetCode #986 - Interval List Intersections
- Java实现LeetCode #986 - Interval List Intersections
- java实现第七届蓝桥杯煤球数量
- Java中List,Set,Map的区别以及API的使用
- 【JAVA】java中split以"." 、""、“|”分隔字符串
- Java中List效率的比较
- Java List合并去重
- java mongodb 基础系列---查询,排序,limit,$in,$or,输出为list,创建索引,$ne 非操作
- Java中List集合去除重复数据的方法
- 【JAVA】java中char类型数组用数组名打印结果不是地址值而是数组内容
- 【JAVA】Java 异常中e的getMessage()和toString()方法的异同
- 【Java】java使用反射访问对象方法和成员变量
- java 注解的几大作用及使用方法详解
- Java List集合实现倒倒序排列
- 1小时学会通过Java Swing Design设计java图形化
- 【蓝桥杯Java_C组·从零开始卷】第八节、集合——list详解
- java笔记:流式编程 数组与List集合互转
- java - 集合List remove 报错 ConcurrentModificationException
- Java通过PDF模板导出数据 adobe acrobat的PDF编辑器 itextpdf java导出文件输出流
- java中的transient 详细总结Java中transient关键字 对象写出流ObjectOutputStream 对象写入流ObjectInputStream
- java基础之集合List-ArrayList、LinkedList、Vector的差别
- java.lang.OutOfMemoryError: Java heap space错误及处理办法(收集整理、转)
- java中集合类中Collection接口中的List接口的常用方法熟悉
- java - 详解 Java 17 中新推出的密封类
- Java中List集合的常用方法