Rumah >Java >javaTutorial >Cara menggunakan kaedah List.contains(Object object) dalam Java

Cara menggunakan kaedah List.contains(Object object) dalam Java

王林
王林ke hadapan
2023-05-01 18:10:071330semak imbas

Gunakan kaedah List.contains(Object object) untuk menentukan sama ada ArrayList mengandungi objek elemen (untuk kes di mana nilai atribut objek adalah sama tetapi alamat objek berbeza), jika objek elemen Objek Senarai1a4db2c2c2313771e5742b6debf617a1 tidak ditindih sama dengan kaedah, lalainya adalah seperti berikut:

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

akan menyebabkan kaedah mengandungi sentiasa mengembalikan palsu.

Lihat kod sumber kaedah mengandungi ArrayList seperti berikut:

    /**
     * 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;
    }

Dapat dilihat bahawa kaedah mengandungi menentukan sama ada elemen tertentu dimasukkan berdasarkan kaedah yang sama dengan Object untuk melihat kaedah sama dalam kelas Objek Kod sumber adalah seperti berikut:

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

Oleh itu, gunakan "==" untuk membandingkan alamat objek yang sama, iaitu alamat adalah sama, benar akan dikembalikan Untuk objek yang berbeza dengan nilai atribut objek yang sama tetapi alamat yang berbeza , sentiasa mengembalikan palsu!

Jika anda perlu menentukan sama ada ArrayList mengandungi objek berdasarkan sama ada nilai atribut objek adalah sama, anda perlu mengatasi kaedah yang sama bagi Objek dan membandingkan setiap nilai atribut objek satu demi satu dalam kaedah sama, seperti:

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 + "]";
    }
}

Atas ialah kandungan terperinci Cara menggunakan kaedah List.contains(Object object) dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam