我从服务器读取了一些数据并将其保存到数据库中。 我想检查是否有任何新数据,所以我请求服务器并获得10个帖子(我的帖子具有ID,标题,图像等)。现在,我想比较我退出的10个新帖子标题整个数据库。 我喜欢这样:我使ArrayList()从服务器获取数据并发送到它:
List<Post> check = new ArrayList<Post>();
这是我的数据库值
List<dbSample> txtsSave = new ArrayList<>();
,然后像这样检查。 (我一起检查标题)。
if (database.exists()) {
for (int i = 0; i < check.size(); i++) {
for (int j = 0; j < txtsSave.size(); j++) {
if (check.get(i).getTitle().equals(txtsSave.get(j).getTitle())) {
Log.i("NewData","No new Data");
} else {
Log.i("NewData"," new Data");
}
}
}
}
但是我可以同时看到Log in locat。如何将它们进行比较? 例如,我的txtsave大小为30而我的支票大小为10。 有什么建议吗?
答案 0 :(得分:0)
这样做:
for (int i = 0; i < check.size(); i++) {
for (int j = 0; j < txtsSave.size(); j++) {
if (check.get(i).getTitle().equals(txtsSave.get(j).getTitle())) {
Log.i("NewData","No new Data");
break;
}
if(j == (txtsSave.size() - 1)) {
Log.i("NewData"," new Data");
}
}
}
答案 1 :(得分:0)
我认为对您来说最好的方法是在这样的列表中使用.contains(object):
for (int i = 0; i < check.size(); i++) {
if(txtsSave.contains(check.get(i)){
Log.i("NewData","No new Data");
txtsSave.add(check.get(i));
} else {
Log.i("NewData"," new Data");
}
}
答案 2 :(得分:0)
您可以通过以下方式检查数据库中是否存在对象:
public boolean hasObject(String string) {
String selectString = "SELECT * FROM " + MY_TABLE_NAME + " WHERE column_name=?";
Cursor cursor = myDatabase.rawQuery(selectString, new String[]{string});
boolean hasObject = false;
if (cursor.moveToFirst()) {
hasObject = true;
}
cursor.close();
return hasObject;
}