Android 如何检查列表中是否存在字符串

Android 如何检查列表中是否存在字符串,android,sqlite,android-listview,contacts,Android,Sqlite,Android Listview,Contacts,这是我的密码: public List<Contact> getAllContacts() { List<Contact> contactList = new ArrayList<Contact>(); String selectQuery = "SELECT * FROM " + TABLE_CONTACTS; SQLiteDatabase db = this.getWritableDatabase(); Cursor c

这是我的密码:

public List<Contact> getAllContacts() {
    List<Contact> contactList = new ArrayList<Contact>();
    String selectQuery = "SELECT  * FROM " + TABLE_CONTACTS;

    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    if (cursor.moveToFirst()) {
        do {
            Contact contact = new Contact();
            contact.setID(Integer.parseInt(cursor.getString(0)));
            contact.setName(cursor.getString(1));
            contactList.add(contact);
        } while (cursor.moveToNext());
    }
     return contactList;
}
公共列表getAllContacts(){ List contactList=new ArrayList(); String selectQuery=“SELECT*FROM”+表格\联系人; SQLiteDatabase db=this.getWritableDatabase(); Cursor Cursor=db.rawQuery(selectQuery,null); if(cursor.moveToFirst()){ 做{ 触点=新触点(); setID(Integer.parseInt(cursor.getString(0)); contact.setName(cursor.getString(1)); 联系人列表。添加(联系人); }while(cursor.moveToNext()); } 返回联系人列表; } 我想要的是将所有联系人与一个字符串进行比较,如果不匹配,则将该联系人添加到我的数据库中。这里的问题是,如果我添加下面的代码部分,它会检查单个字符串是否匹配,如果不匹配,则会得到add。我可以看出代码是错误的,但我无法修复它

List<Contact> contacts = db.getAllContacts();       
for (Contact cn : contacts) {
    if (!(cn.getName().contains(substring))) {
        // Inserting Contacts
        db.addContact(new Contact(record.get("9"), getDateTime()));
    }
}  
List contacts=db.getAllContacts();
用于(联系人cn:联系人){
如果(!(cn.getName()包含(子字符串))){
//插入联系人
addContact(新联系人(record.get(“9”),getDateTime());
}
}  
列出联系人=db.getAllContacts();
布尔值shouldAddToDB=true;
用于(联系人cn:联系人){
if((cn.getName().contains(substring))){
shouldAddToDB=false;
打破
}
}
if(shouldAddToDB){
//插入联系人
addContact(新联系人(record.get(“9”),getDateTime());
}

edited:
List contacts=db.getAllContacts()在for循环之外。很抱歉,我在发布代码时犯了错误,但在我的代码中是这样的:pand有什么问题
cn.getName().contains(substring)
未按预期工作?问题是,如果没有一个联系人与列表匹配,我希望将其添加到DB中,但现在即使只有一个联系人与它获得的列表不匹配,请参见下面的答案
List<Contact> contacts = db.getAllContacts();
boolean shouldAddToDB = true;    
for (Contact cn : contacts) {
    if ((cn.getName().contains(substring))) {
        shouldAddToDB = false;
        break;
    }
}

if (shouldAddToDB) {
    // Inserting Contacts
    db.addContact(new Contact(record.get("9"), getDateTime()));
}