I noticed that i return duplicate rows in my listview
constructed from my arrayList
. I would like to check if the elements exist in the arraylist
and if so, ignore that set. The unique value to check would be my id
, denoted by KEY_SID
.
Here's my code:
public ArrayList<SaleModel> loadSalesFromSQLite() {
ArrayList<SaleModel> sales = new ArrayList<>();
hp = new HashMap();
SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery("SELECT * FROM " + TABLE_SALES + " ORDER BY datetime(created_at) DESC", null);
res.moveToFirst();
while (!res.isAfterLast()) {
SaleModel l_sales = new SaleModel();
l_sales.setId(res.getString(res
.getColumnIndex(KEY_SID)));
l_sales.setCode(res.getString(res
.getColumnIndex(KEY_CODE)));
l_sales.setAttendant_id(res.getString(res
.getColumnIndex(KEY_ATTENDANT_ID)));
l_sales.setAttendant_name(res.getString(res
.getColumnIndex(KEY_ATTENDANT_NAME)));
l_sales.setProduct_id(res.getString(res
.getColumnIndex(KEY_PRODUCT_ID)));
l_sales.setPrice(res.getString(res
.getColumnIndex(KEY_PRICE)));
l_sales.setCustomer_id(res.getString(res
.getColumnIndex(KEY_CUSTOMER_ID)));
l_sales.setCustomer_first_name(res.getString(res
.getColumnIndex(KEY_CUSTOMER_FIRST_NAME)));
l_sales.setCustomer_last_name(res.getString(res
.getColumnIndex(KEY_CUSTOMER_LAST_NAME)));
l_sales.setCustomer_image(res.getString(res
.getColumnIndex(KEY_CUSTOMER_IMAGE)));
l_sales.setUid(res.getString(res
.getColumnIndex(KEY_UID)));
l_sales.setQuantity(res.getString(res
.getColumnIndex(KEY_QUANTITY)));
l_sales.setP_name(res.getString(res
.getColumnIndex(KEY_PRODUCT_NAME)));
l_sales.setP_image(res.getString(res
.getColumnIndex(KEY_PRODUCT_IMAGE)));
l_sales.setCreated_at(res.getString(res
.getColumnIndex(KEY_PRODUCT_CREATED)));
l_sales.setSvg(res.getString(res
.getColumnIndex(KEY_SVG)));
l_sales.setOfflineTag(res.getString(res
.getColumnIndex(KEY_OFFLINETAG)));
sales.add(l_sales);
res.moveToNext();
}
Log.d(TAG, "Fetching sales from Sqlite: ");
res.close();
return sales;
}
Before i return sales
arrayList
, i would like to check for duplicates there, remove them, the return the arrayList
without duplicates. Any suggestions?