第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

equals()方法和contians()方法實現講解

標簽:
Java
    首先说明在java语言中“==”的用法。
  1. “==”的用法

     “==”用于判断两个元素是否相等,用于基本数据类型比较和引用比较会产生不同的效果。

    (1)基本数据类型比较:只要两个数据的值相等,就返回true,否则返回false。在这里是比较的是数值。
    (2)引用比较:如果引用指向同一块内存区域,则返回true,否则为flase。

  2. equals()方法
    equals()方法是确定两个对象的引用是否相等。
    首先在这里讲一下String类的equals()方法。字符串常量存储在字符串池中,存储机制为首先会在池中查找有没有相同的字符串,如果没有则存入,如果有则将已有的字符串的引用赋给常量,即字符串池中的字符都是不同的。如下
String  w = "name";
String  l = "name";
System.out.println(w==l);执行结果是true。因为w和l指向内存的同一块地址。
System.out.println(w.equals(l));//因此这个地方也返回true。
        String h = new String("KKK");
        String x = new String("KKK");
        System.out.println(h==x);//返回值为false。

因为new一个变量,是在堆中分配内存,因此h和x指向的是不同的内存区域,所有返回值为false。然而System.out.println(h.equals(x));//返回true,为什么呢?那是因为String类覆盖了equals()方法,使equals()方法是比较的是值相等。

  • 一般类的equals()方法
public List courseToSelect=new ArrayList();;
Course c = (Course) it.courseToSelect.get(0);
System.out.println(c);
System.out.println(it.courseToSelect.get(0).equals(new Course("1","数据结构")));
System.out.println(it.courseToSelect.get(0).equals(c));

执行结果如下:图片描述

第一行为打印的是c对象的引用,第二行返回值为false,那是因为引用那个不同,第三行为true是因为c指向序列的第0元素。
3. contains()方法
JAVA API中对List的contains()方法的解释如下:可以看出在contains()内部也是调用的equals()方法进行判断的,因此它也是判断的对象的引用是否相同。

如果此列表中包含指定的元素,则返回 true。更确切地讲,当且仅当此列表包含至少一个满足 (o==null ? e==null : o.equals(e)) 的元素 e 时,则返回 true。

看一下的代码:

Course c = (Course) it.courseToSelect.get(0);
System.out.println(c.id + c.name);
System.out.println(it.courseToSelect.contains(new Course("1","数据结构")));
System.out.println(it.courseToSelect.contains(c));

运行结果是图片描述

4.因此当我们需要判断序列中是否包含具有某个属性的对象时需要自己重写equals()方法。

點擊查看更多內容
7人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質文章

正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消