首页 > 编程语言 >Java 中的contains方法解析

Java 中的contains方法解析

时间:2024-02-01 22:35:14浏览次数:35  
标签:Java String contains equals User new 解析 方法

contains方法解析

深入Collection集合的contains方法

  • boolean contains(Object o) 如果此集合包含指定的元素,则返回 true
  • contains方法是用来判断集合中是否包含某个元素的。
  • 它在底层调用了equals方法进行比对。
public class CollectionTest04 {
    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);


        //创建新的对象
        String x = new String("abc");
        //集合中是否包含X?
        System.out.println(c.contains(x));//判断集合中是否包含“abc”,true,contains底层使用了equals()

    }
}

Collection接口中remove方法和contains方法底层都会调用equals方法。它们都需要重写了equals方法。

/*
* 测试contains方法
* 结论:存放在一个集合中的类型,一定要重写equals方法。
* */
public class CollectionTest05 {
    public static void main(String[] args) {
        //创建集合对象
        Collection c = new ArrayList();
        //创建用户对象
        User u1=new User("jack");
        User u2=new User("jack");
        c.add(u1);
        //判断集合中是否包含u2
       // System.out.println(c.contains(u2));//false,没有重写equals方法
        System.out.println(c.contains(u2));//true,重写了equals方法,比较多的时候会比较内容

        Integer x=new Integer(10000);
        c.add(x);
        Integer y=new Integer(10000);
        System.out.println(c.contains(y));//true
        //Integer类中equals方法重写了

        Collection cc = new ArrayList();
        String s1 = new String("hello");
        cc.add(s1);
        String s2 = new String("hello");
        cc.remove(s2);// remove中也调用了equals方法
        System.out.println(cc.size());//0个元素

    }
}

class User{
    private String name;
    public User(){}
    public User(String name){
        this.name=name;
    }
    //重写equals方法
    //将来调用equals方法的时候,一定是调用这个重写的equals方法。

    //这个equals方法的比较原理是:只有姓名一样就表示同一个用户。
    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);
    }

}

标签:Java,String,contains,equals,User,new,解析,方法
From: https://www.cnblogs.com/shijili/p/18002267

相关文章

  • java面向对象基础语法之两个引用指向同一个对象内存
    一:概述前面已经说了单个对象的引用指向和两个对象的引用指向。下面来说一下两个对象引用指向同一个对象的内存图。二:具体说明<1>说明的具体代码实例代码publicclassStudent1{Stringname;intage;publicvoidstudy(){System.......
  • 深入理解 Java 变量类型、声明及应用
    Java变量变量是用于存储数据值的容器。在Java中,有不同类型的变量,例如:String-存储文本,例如"你好"。字符串值用双引号引起来。int-存储整数(全数字),没有小数,例如123或-123。float-存储浮点数,带有小数,例如19.99或-19.99。char-存储单个字符,例如'a'或'B'。字......
  • 深入理解 Java 变量类型、声明及应用
    Java变量变量是用于存储数据值的容器。在Java中,有不同类型的变量,例如:String-存储文本,例如"你好"。字符串值用双引号引起来。int-存储整数(全数字),没有小数,例如123或-123。float-存储浮点数,带有小数,例如19.99或-19.99。char-存储单个字符,例如'a'或'B'。字......
  • 【技巧总结】java整数,字符串,数组之间的相互转换(持续更新)
    字符串转换为int类型给定一个字符串Stringstr="1234";转为转数字1234valueOf()Integernum=Integer.valueOf(str);返回的是包装类对象,可以进行调用对象方法可以用toString()方法。​parseIntintnum=Integer.parseInt(str)返回的是基本数据类型字符串......
  • 面试官:说一说你的第一个Java程序是怎么跑起来的?
    面试官:“说一说你第一个Java程序是怎么跑起来的?”我:“啊,您是说HelloWorld吗?”面试官:“嗯,没错,几十年过去了,还是helloworld......”我:“好滴!且听俺给您唠一唠”话不多说,直接上一段代码:/***class关键字:用于在Java中声明一个类*/publicclassStaffApplicationTests{......
  • Java 中 Collection接口中常用的方法
    Collection接口中常用的方法关于java.util.Collection接口中常用的方法Collection中能放什么元素没有使用“泛型”之前,Collectiom中可以存放Object的所有子类型使用了“泛型”之后,Collection中只能存放某个具体的类型。(集合中不能存储基本数据类型,也不能存储Java对象,只能......
  • 深入剖析Java中的反射,由浅入深,层层剥离!
    写在开头之前更新了不少Java的基础知识,比如Java的类、对象、基础类型、关键字、序列化、泛型、值传递等等,今天要上点深度了,来聊一聊Java中的反射!所谓反射,就是在运行时分析、检查和操作类、接口、方法、属性的行为!简单感受一下反射在开始详解反射之前,我们先通过一段代码,简......
  • Java之网络编程的详细解析
    1.网络编程入门1.1网络编程概述计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程在网络通信协议下,不同计算机上运行的程序,可以进行......
  • PHPYUN人才招聘系统V7.0_VIP版更新包(20240101)中若干bug的修复解析及上架小程序过程
    没想到这么大的一个php开发者会遇到若干小bug问题,以前正常运行的程序升级到7.0后出现莫名奇妙的问题,比如模板消息不能使用了,完全收不到消息,后来才知道因为改版代码里出现了Bug,在比如网络招聘申请环节没反应,也是bug可能这次更新较大没注意把还好我自己解决了把解决过程分享出来!......
  • Java-06函数
    tip:[start]理解函数,最重要的是理解代码的执行顺序。——闫学灿tip:[end]函数基础一个典型的函数定义包括以下部分:修饰符、返回类型、函数名字、由0个或多个形参组成的形参列表以及函数体。编写函数我们来编写一个求阶乘的程序。程序如下所示:publicclassMain{ //函......