android - 如果 ArrayList 中存在世界,Android SQLite 忽略添加
问题描述
我正在使用 Android SQLite 添加一些 ArrayList。我想这样做:如果有我将在列表中和任何地方选择的世界,我想阻止添加它。
例如; 如果 ArrayList 中存在“Duck U”,我想忽略添加数据库。
我累了list.contains("Duck u");
,但没有工作。
我添加到数据库的代码:
public void HistoryADD(ArrayList<String> full, String owner){
int size = full.size();
SQLiteDatabase db = getWritableDatabase();
try{
for (int i = 0; i < size ; i++){
ContentValues cv = new ContentValues();
cv.put(FULL, full.get(i));
cv.put(OWNER, owner);
Log.d("Added ",""+ cv);
db.insertOrThrow(TABLE_NAME, null, cv);
}
db.close();
}catch (Exception e){
System.out.println("Could not added");
}}
有样品吗?非常感谢。
解决方案
我相信以下可能是一个解决方案(注意它可以满足多个单词(字符串)被忽略(跳过插入))
这使用了一种方法,即将ifHaystackContainsNeedle
针对另一个 ArrayList(the Needle)搜索一个 ArrayList(the Haystack)(因此可以忽略多个字符串)。如果在大海捞针中找到任何针,则此方法返回 true。因此,如果返回 true,您可以继续 for 循环,从而跳过
public void HistoryADD(ArrayList<String> full, String owner,ArrayList<String> ignore){
int size = full.size();
SQLiteDatabase db = getWritableDatabase();
try{
for (int i = 0; i < size ; i++){
//<<<<<<<<<< START OF ADDED TEST
if (ifHaystackContainsNeedle,owner,ignore) {
Log.d("Skipped ","Owner " + get(i) + " was skipped.");
continue;
}
//<<<<<<<<<< END OF ADDED TEST
ContentValues cv = new ContentValues();
cv.put(FULL, full.get(i));
cv.put(OWNER, owner);
Log.d("Added ",""+ cv);
db.insertOrThrow(TABLE_NAME, null, cv);
}
db.close();
}catch (Exception e){
System.out.println("Could not added");
}}
//<<<<<<<<<< NEW METHOD
private boolean ifHaystackContainsNeedle(ArrayList<String> haystack, ArrayList<String> needle) {
for (String s: haystack) {
for (String s2: needle) {
if (s.contains(s2)) {
return true;
}
}
}
return false;
}
- 请注意,这是原则上的代码,并且已经过全面测试,因此可能包含一些错误。
推荐阅读
- powershell - 如何防止 Powershell 在输出上打印警告?
- r - 两个带有和不带有图例的图,具有相同的内部图大小
- amazon-web-services - 访问 amazon amplify 上的资源
- .htaccess - 修改 .htaccess 文件中的重写规则
- c++ - 进度条 gtkmm Glade
- python - 使用 Flask 和 ProxyFix 在 GAE 上获取 IP 地址
- datetime - ASP.NET Core 应用程序上的错误日期时间格式
- sql - 平均重做使用情况查询
- python - 使用 pd.DataFrame.join() 将多个 txt 文件加入一个文件
- python - 附加以虚拟数组开头的二维数组