Heim > Java > javaLernprogramm > So verwenden Sie die Methode List.contains(Object object) in Java

So verwenden Sie die Methode List.contains(Object object) in Java

王林
Freigeben: 2023-05-01 18:10:07
nach vorne
1324 Leute haben es durchsucht

Verwenden Sie die List.contains(Object object)-Methode, um zu bestimmen, ob die ArrayList ein Elementobjekt enthält (für den Fall, dass der Attributwert des Objekts gleich ist, aber die Objektadresse unterschiedlich ist), wenn das Elementobjekt Object of List< ;E> wird nicht überschrieben. Die Methode „equals“ lautet standardmäßig wie folgt:

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

führt dazu, dass die Methode „enthält“ immer „false“ zurückgibt.

Sehen Sie sich den Quellcode der Methode „Contains“ von ArrayList wie folgt an:

    /**
     * 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;
    }
Nach dem Login kopieren

Es ist ersichtlich, dass die Methode „Contains“ basierend auf der Methode „Equals“ bestimmt, ob ein bestimmtes Element enthalten ist von Object. Sehen Sie sich weiterhin die Object-Klasse an. Der Quellcode lautet wie folgt:

    public boolean equals(Object o) {
        return this == o;
    }
Nach dem Login kopieren

Verwenden Sie also „==“, um die Adressen von Objekten zu vergleichen. Das heißt, wenn die Adressen gleich sind, wird „true“ zurückgegeben. Denn die Objektattributwerte sind gleich. Aber verschiedene Objekte mit unterschiedlichen Adressen geben immer „false“ zurück!

Wenn Sie anhand der Gleichheit der Objektattributwerte feststellen müssen, ob die ArrayList ein Objekt enthält, müssen Sie die Methode equal von Object überschreiben und jeden Attributwert des Objekts mit einem vergleichen durch eins in der Gleichheitsmethode, wie zum Beispiel:

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 + "]";
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Methode List.contains(Object object) in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage