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

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

王林
王林nach vorne
2023-05-01 18:10:071288Durchsuche

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);
    }

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

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

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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen