La méthode contain dans ArrayList est utilisée pour déterminer si l'élément cible est inclus dans ArrayList.
(Tutoriel recommandé :Tutoriel d'introduction à Java)
Principe :
Appeler la méthode indexOf(Object o)
public boolean contains(Object o) { return indexOf(o) >= 0; }
indexOf (Object o) appelle la méthode égale de l'objet Object entrant pour comparaison
public int indexOf(Object o) { // 传入的Object是null, 则在集合中寻找为null的元素 if (o == null) { for (int i = 0; i < size; i++) if (elementData[i]==null) return i; } else { // 如果不为null, 调用equals方法比较 for (int i = 0; i < size; i++) if (o.equals(elementData[i])) return i; } // 不满足条件, 返回-1 return -1; }
Utilisation :
Maintenant que le principe est clair, la prochaine chose à faire est de jeter un œil au méthode égale des classes communes
(Recommandation vidéo d'apprentissage :cours java)
Classe de chaîne
public boolean equals(Object anObject) { // 如果两个对象内存地址相同, 返回true if (this == anObject) { return true; } // 判断传入Object是String的情况 if (anObject instanceof String) { String anotherString = (String)anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; // 比较String转化的char[]中的每一个char元素 // 如果有一个不想等,则返回false while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
Donc, si le type d'élément dans la collection ArrayList est une chaîne, utiliser contient directement La méthode ne pose aucun problème
Classe entière
Les autres types d'emballage sont fondamentalement les mêmes, ce sont tous des valeurs comparées, vous pouvez donc également utiliser directement la méthode contient
public boolean equals(Object obj) { if (obj instanceof Integer) { return value == ((Integer)obj).intValue(); } return false; }
Autres types de référence
Je crois que tout le monde sait que lorsque vous utilisez d'autres types de référence et que vous devez utiliser la méthode contain, vous devez remplacer la méthode equals !
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!