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

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

王林
Lepaskan: 2023-05-01 18:10:07
ke hadapan
1323 orang telah melayarinya

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 Senarai tidak ditindih sama dengan kaedah, lalainya adalah seperti berikut:

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

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;
    }
Salin selepas log masuk

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;
    }
Salin selepas log masuk

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 + "]";
    }
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan