最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中List.contains(Object?object)方法使用

 更新時間:2022年04月08日 11:21:20   作者:亦楓Blog  
本文主要介紹了Java中List.contains(Object?object)方法,使用List.contains(Object?object)方法判斷ArrayList是否包含一個元素對象,感興趣的可以了解一下

使用List.contains(Object object)方法判斷ArrayList是否包含一個元素對象(針對于對象的屬性值相同,但對象地址不同的情況),如果沒有重寫List<E>的元素對象Object中的equals方法,默認如下:

    @Override
    public boolean equals(Object o) {
        // TODO Auto-generated method stub
        return super.equals(o);
    }

將導致contains方法始終返回false。

查看ArrayList的contains方法的源碼如下:

    /**
     * Searches this {@code ArrayList} for the specified object.
     *
     * @param object
     *            the object to search for.
     * @return {@code true} if {@code object} is an element of this
     *         {@code ArrayList}, {@code false} otherwise
     */
    @Override public boolean contains(Object object) {
        Object[] a = array;
        int s = size;
        if (object != null) {
            for (int i = 0; i < s; i++) {
                if (object.equals(a[i])) {
                    return true;
                }
            }
        } else {
            for (int i = 0; i < s; i++) {
                if (a[i] == null) {
                    return true;
                }
            }
        }
        return false;
    }

可以看出,contains方法依據(jù)Object的equals方法來判斷是否包含某一元素,繼續(xù)查看Object類中的equals方法,源碼如下:

    public boolean equals(Object o) {
        return this == o;
    }

所以,使用“==”比較對象的地址,如果是同一對象即地址相同的情況下,才會返回true,而對于對象屬性值相同但地址不同的不同對象,始終返回false!

如果需要依據(jù)對象屬性值是否相同來判斷ArrayList是否包含某一對象,則需要重寫Object的equals方法,并在equals方法中一一比較對象的每個屬性值,如:

package com.feng.lejuan.entity;
?public class QuestionInfo {
?
?? ?private String questionId;
?? ?
?? ?private String answerId;
?? ?
?? ?private String subQuestionId;
?? ?
?? ?private String result;
?
?? ?public QuestionInfo() {
?? ??? ?super();
?? ??? ?
?? ?}
?
?? ?public QuestionInfo(String questionId, String answerId,
?? ??? ??? ?String subQuestionId, String result) {
?? ??? ?super();
?? ??? ?this.questionId = questionId;
?? ??? ?this.answerId = answerId;
?? ??? ?this.subQuestionId = subQuestionId;
?? ??? ?this.result = result;
?? ?}
?
?? ?public String getQuestionId() {
?? ??? ?return questionId;
?? ?}
?
?? ?public void setQuestionId(String questionId) {
?? ??? ?this.questionId = questionId;
?? ?}
?
?? ?public String getAnswerId() {
?? ??? ?return answerId;
?? ?}
?
?? ?public void setAnswerId(String answerId) {
?? ??? ?this.answerId = answerId;
?? ?}
?
?? ?public String getSubQuestionId() {
?? ??? ?return subQuestionId;
?? ?}
?
?? ?public void setSubQuestionId(String subQuestionId) {
?? ??? ?this.subQuestionId = subQuestionId;
?? ?}
?
?? ?public String getResult() {
?? ??? ?return result;
?? ?}
?
?? ?public void setResult(String result) {
?? ??? ?this.result = result;
?? ?}
?
?? ?@Override
?? ?public boolean equals(Object o) {
?? ??? ?if (o instanceof QuestionInfo) {
?? ??? ??? ?QuestionInfo question = (QuestionInfo) o;
?? ??? ??? ?return this.questionId.equals(question.questionId)
?? ??? ??? ??? ??? ?&& this.subQuestionId.equals(question.subQuestionId)
?? ??? ??? ??? ??? ?&& this.answerId.equals(question.answerId)
?? ??? ??? ??? ??? ?&& this.result.equals(question.result);
?? ??? ?}
?? ??? ?return super.equals(o);
?? ?}
?? ?
?? ?@Override
?? ?public String toString() {
?? ??? ?return "QuestionInfo [questionId=" + questionId + ", answerId="
?? ??? ??? ??? ?+ answerId + ", subQuestionId=" + subQuestionId + ", result="
?? ??? ??? ??? ?+ result + "]";
?? ?}
}

到此這篇關于Java中List.contains(Object object)方法的文章就介紹到這了,更多相關Java List.contains(Object object)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

溧水县| 新乡市| 遂川县| 牙克石市| 绿春县| 香河县| 青海省| 安泽县| 武安市| 特克斯县| 德化县| 阿拉善左旗| 伽师县| 遂川县| 高要市| 汝阳县| 龙游县| 辉南县| 珲春市| 林州市| 宕昌县| 盐源县| 青田县| 沂源县| 托克托县| 永川市| 五寨县| 濉溪县| 曲靖市| 南郑县| 大宁县| 喀什市| 石泉县| 布尔津县| 游戏| 棋牌| 钟山县| 涟源市| 新化县| 大丰市| 呼伦贝尔市|