Maison  >  Article  >  Java  >  Comment utiliser list.contains() en Java

Comment utiliser list.contains() en Java

WBOY
WBOYavant
2023-05-16 17:01:122494parcourir

1. Utilisation :

contain() dans la collection de listes est utilisée pour déterminer si la collection contient l'élément spécifié . La liste comparera les éléments entre parenthèses avec les éléments existant dans la liste un par un. S'il y a des éléments égaux, le résultat renvoyé est vrai, sinon, le résultat renvoyé est faux.

2. Exemple :

Utilisez le code suivant pour vérifier :

  public static void main(String[] args) {
        List newList = new ArrayList();//创建一个空数组
        newList.add("name");
        newList.add("age");
        newList.add("sex");
        newList.add("birth");//往数组中加一些元素
        boolean res = false;
        if(newList.contains("birthday")){
            res=true;
            log.info("包含,返回"+res);
        }else {
            log.info("不包含,返回"+res);
        }
    }

Testez si le tableau newList contient l'élément "birthday"

Comment utiliser list.contains() en Java

Testez si le tableau newList contient l'élément "birth"

Comment utiliser list.contains() en Java

3. Expansion

La méthode contain() dans la classe String : Si et seulement si cette chaîne contient la séquence de valeurs de caractères spécifiée, il est déterminé si le contenu spécifié contient le contenu entre parenthèses.
Exemple :

public static void main(String[] args) {
	String str="CSDN程序媛";
    boolean res = false;
    if(str.contains("程序媛")){
    	res=true;
        log.info("包含程序媛,返回"+res);
    }else {
        log.info("不包含程序媛,返回"+res);
    }

Testez si le type de chaîne "CSDN Program Yuan" contient "Program Yuan"

Comment utiliser list.contains() en Java

Si la chaîne de type String contient des lettres, vous devez faire attentionIl est sensible à la casse

Testez le Type de chaîne" "CSDN Program Yu" contient minuscule "csdn"

Comment utiliser list.contains() en Java

Supplément : La méthode List.contains() en Java compare les adresses au lieu des valeurs

Utilisez la méthode List.contains(Object object) pour déterminer si ArrayList contient un objet élément (dans le cas où la valeur d'attribut de l'objet est la même mais l'adresse de l'objet est différente), si la méthode égale dans l'objet élément Object de List n'est pas remplacée, la valeur par défaut est comme suit :

Utilisez la méthode List.contains(Object object) pour déterminer si ArrayList contient un objet élément (dans le cas où la valeur d'attribut de l'objet est la même mais l'adresse de l'objet est différente), si la méthode égale dans l'élément object L'objet de List n'est pas remplacé, la valeur par défaut est la suivante :

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

will Fait en sorte que la méthode contain renvoie toujours false.

Affichez le code source de la méthode contain d'ArrayList comme suit :

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

On peut voir que la méthode contain détermine si un certain élément est inclus en fonction de la méthode equals de Object. Continuez à afficher la méthode equals dans l'objet. classe. Le code source est le suivant :

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

Donc, utilisez "==" pour comparer les adresses des objets, c'est-à-dire si les adresses sont les mêmes, true sera renvoyé pour différent. objets avec la même valeur d'attribut d'objet mais des adresses différentes, false sera toujours renvoyé !

Si vous devez déterminer si ArrayList contient un objet en fonction du fait que les valeurs d'attribut de l'objet sont les mêmes, vous devez remplacer la méthode égale de l'objet et comparer chaque valeur d'attribut de l'objet une par une dans la méthode égale. , tel que :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer