Java判断两个集合比较containsAll、Java集合判断对象相等contains
2022/1/25 11:04:51
本文主要是介绍Java判断两个集合比较containsAll、Java集合判断对象相等contains,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
containsAll() :用于检测 arraylist 是否包含指定集合中的所有元素
两个集合一样返回true,不一样返回false
注意
:有一种特殊情况3,重点理解,注意两个集合的使用前后顺序,避免业务中影藏bug
情况1: public static void main(String[] args) { List<String> list1 = Arrays.asList("1","2","3"); List<String> list2 = Arrays.asList("1","2","3"); boolean result = list2.containsAll(list1); System.out.println(result); } 执行结果:true
情况2: public static void main(String[] args) { List<String> list1 = Arrays.asList("1","2","3"); List<String> list2 = Arrays.asList("1","2"); boolean result = list2.containsAll(list1); System.out.println(result); } 执行结果:false
同样的两个集合,集合使用顺序不一样,结果不一样
由此可见,情况3中,内部实现方式是通过判断list1集合是否包含在list2中才会返回true
所以当两个集合调换使用顺序,如情况4,执行结果才会返回false
情况3: public static void main(String[] args) { List<String> list1 = Arrays.asList("1","2"); List<String> list2 = Arrays.asList("1","2","3"); boolean result = list2.containsAll(list1); System.out.println(result); } 执行结果:true 情况4: public static void main(String[] args) { List<String> list1 = Arrays.asList("1","2"); List<String> list2 = Arrays.asList("1","2","3"); boolean result = list1.containsAll(list2); System.out.println(result); } 执行结果:false
contains():方法用于判断字符串中是否包含指定的字符或字符串
这里重点说的是使用contains()方法判断一个对象是否包含在一个集合中
执行一下代码需要先实现以下功能:
1、创建实体类User
2、创建构造函数
3、重写equals方法
注意
如果不重写equals方法,执行结果都是false
public class User { private Integer id; private String name; private String phone; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } //构造函数 public User(Integer id, String name, String phone) { this.id = id; this.name = name; this.phone = phone; } //重写equals方法 @Override public boolean equals(Object obj){ if(!(obj instanceof User)){ return false; } User temp = (User) obj; //此处可根据业务需求进行调整字段 if(this.getId().equals(temp.getId()) && this.getName().equals(temp.getName()) && this.getPhone().compareTo(temp.getPhone())==0){ return true; } return false; } }
public static void main(String[] args) { List<User> list1 = Arrays.asList( new User(1, "张三1", "15810075811"), new User(2, "李四", "15810075822"), new User(3, "王五", "15810075833") ); List<User> list2 = Arrays.asList( new User(1, "张三", "15810075811"), new User(2, "李四", "15810075822"), new User(3, "王五", "15810075833") ); list1.forEach(list->{ if(list2.contains(list)){ System.out.println("true"); }else{ System.out.println("false"); } }); } 执行结果: false true true
这篇关于Java判断两个集合比较containsAll、Java集合判断对象相等contains的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-29DataGrip使用ssh连接数据库的操作流程
- 2024-05-28SpringBoot3.2更新声明!
- 2024-05-28中外程序员到底有啥区别?
- 2024-05-25外企也半夜发布上线吗?
- 2024-05-24鸿蒙原生应用再新丁!芒果TV 入局鸿蒙
- 2024-05-22基本概念
- 2024-05-22检索数据
- 2024-05-22排序数据
- 2024-05-22基础过滤数据
- 2024-05-22通过逻辑操作符过滤数据