概述
深入学习contains,remove方法
boolean contains(Object o)
判断集合中是否包含某个对象o,如果包含返回true,反之返回false
contains方法是用来判断集合中是否包含某个对象的方法,
那么它在底层是怎么判断集合中是否包含的呢?
调用了equals方法进行对比,
equals方法返回true,就表在这里插入代码片
示包含了这个对象
package Collection;
import java.util.ArrayList;
import java.util.Collection;
/*
深入学习contains,remove方法
boolean contains(Object o)
判断集合中是否包含某个对象o,如果包含返回true,反之返回false
contains方法是用来判断集合中是否包含某个对象的方法,
那么它在底层是怎么判断集合中是否包含的呢?
调用了equals方法进行对比,
equals方法返回true,就表示包含了这个对象
*/
public class ContainTest01 {
public static void main(String[] args) {
//创建一个集合对象
Collection c=new ArrayList();
String s1=new String("abc");
c.add(s1);
String s2=new String("def");
c.add(s2);
System.out.println("集合的元素个数:"+c.size());
//创建一个新对象
String x=new String("abc");
//c集合中是否包含x?
System.out.println(c.contains(x)); //true
}
}
结论:存放在一个集合中的类型,必须重写equals方法
package Collection;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Objects;
/*
结论:存放在一个集合中的类型,必须重写equals方法
*/
public class Collectiontest02 {
public static void main(String[] args) {
Collection c=new ArrayList();
User u1=new User("脆脆鲨");
User u2=new User("脆脆鲨");
c.add(u1);
//判断集合中是否包含u2
//没有重写equals方法前,返回的是false
// System.out.println(c.contains(u2)); //false
//重写equals方法后,返回的是true,比较的是name
System.out.println(c.contains(u2)); //true
c.remove(u2);
System.out.println(c.size()); //0
Integer it=new Integer(1000) ; //Integer中重写了equals方法
c.add(it);
Integer it1=new Integer(1000) ;
System.out.println(c.contains(it1)); //true
}
}
class User{
private String name;
public User(){}
public User(String name) {
this.name = name;
}
// 重写了equals方法
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return Objects.equals(name, user.name);
}
}
package Collection;
import java.util.ArrayList;
import java.util.Collection;
public class Containstest03 {
public static void main(String[] args) {
Collection c=new ArrayList();
String s1=new String("小玉");
c.add(s1);
String s2=new String("小玉");
//删除
c.remove(s2);//s1.equals(s2) java认为s1和s2是一样的,删除s2就是删除s1
//集合中的元素为?
System.out.println(c.size());
}
}
最后
以上就是踏实豌豆为你收集整理的深入学习contains,remove方法的全部内容,希望文章能够帮你解决深入学习contains,remove方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复