对比判断两个List内容是否相等
- 应用场景
- 关键字 containsAll() [kənˈteɪnz]
- 注意事项
- 代码示例
- contains() 方法用于判断字符串中是否包含指定的字符或字符串
应用场景
关键字 containsAll() [kənˈteɪnz]
- 用于检测 arraylist 是否包含指定集合中的所有元素。相同返回true , 不同返回false
注意事项
- 我们在对比两个集合时需要特别注意两个集合的向后顺序,顺序不同导致返回结果不同。
代码示例
class testContains {
public static void main(String[] args) {
List list_1_1 = Arrays.asList("1", "2", "3");
List list_1_2 = Arrays.asList("1", "2", "3");
if (list_1_2.containsAll(list_1_1)) {
System.out.println("true:相同的集合");
} else {
System.out.println("false:不相同的集合");
}
List list_2_1 = Arrays.asList("1", "2", "3");
List list_2_2 = Arrays.asList("1", "2");
if (list_2_2.containsAll(list_2_1)) {
System.out.println("true:相同的集合");
} else {
System.out.println("false:不相同的集合");
}
List list_3_1 = Arrays.asList("1", "2", "3");
List list_3_2 = Arrays.asList("1", "2");
if (list_3_1.containsAll(list_3_2)) {
System.out.println("true:相同的集合");
} else {
System.out.println("false:不相同的集合");
}
}
}
- 内部实现方式是通过判断list1集合是否包含在list2中才会返回true
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 list1 = Arrays.asList(
new User(1, "张三1", "1"),
new User(2, "李四", "1"),
new User(3, "王五", "1")
);
List list2 = Arrays.asList(
new User(1, "张三", "1"),
new User(2, "李四", "1"),
new User(3, "王五", "1")
);
list1.forEach(list->{
if(list2.contains(list)){
System.out.println("true");
}else{
System.out.println("false");
}
});
}
执行结果:
false
true
true