最新国产好看的视频,伊人天堂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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

全南县| 富宁县| 永新县| 花莲市| 北宁市| 佛教| 当雄县| 内丘县| 桦甸市| 紫云| 宁强县| 宣汉县| 衡阳县| 永吉县| 独山县| 芜湖县| 天峻县| 江永县| 怀安县| 丹江口市| 尖扎县| 独山县| 太仆寺旗| 比如县| 隆尧县| 新余市| 临潭县| 诸城市| 五家渠市| 朝阳市| 商城县| 自贡市| 门源| 清流县| 西安市| 塔河县| 华宁县| 新竹市| 东至县| 凤阳县| 江西省|