Rumah >Java >javaTutorial >Cara menggunakan list.contains() dalam Java
mengandungi() dalam koleksi senarai digunakan untuk menentukan sama ada koleksi mengandungi elemen yang ditentukan . Senarai akan membandingkan elemen dalam kurungan dengan elemen yang ada dalam senarai satu demi satu Jika terdapat elemen yang sama, hasil pulangan adalah benar, jika tidak, hasil pulangan adalah palsu.
Gunakan kod berikut untuk mengesahkan:
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); } }
Uji sama ada tatasusunan Senarai baru mengandungi elemen "hari jadi"
Uji sama ada elemen "kelahiran" disertakan dalam tatasusunan Senarai baru
String kelas: jika dan hanya Apabila rentetan ini mengandungi jujukan nilai aksara yang ditentukan, ia ditentukan sama ada kandungan yang dinyatakan dalam mengandungi kandungan dalam kurungan .
Contoh:
public static void main(String[] args) { String str="CSDN程序媛"; boolean res = false; if(str.contains("程序媛")){ res=true; log.info("包含程序媛,返回"+res); }else { log.info("不包含程序媛,返回"+res); }
Uji sama ada jenis String "CSDN Program Yuan" mengandungi "Program Yuan"
Jika rentetan jenis String mengandungi Apabila menggunakan huruf, anda perlu memberi perhatian kepada kes-sensitif
Uji sama ada jenis String "CSDN Program Yuan" mengandungi huruf kecil "csdn"
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 kaedah sama dalam objek elemen Objek Senarai
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 kaedah sama dalam objek elemen Objek Senarai
@Override public boolean equals(Object o) { // TODO Auto-generated method stub return super.equals(o); }
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; }
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; }
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 + "]"; } }
Atas ialah kandungan terperinci Cara menggunakan list.contains() dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!