如何从“飞镖”中的对象列表中获取唯一数据

时间:2020-09-14 20:21:38

标签: database flutter dart collections

将用户位置保存在本地数据库上时,可以成功保存,但是,当我检索数据时,每天会有多个数据。我想通过在列表中添加唯一数据来消除冗余,但我无法做到这一点..请参阅下面的cose代码段,感谢所有潜在客户!

if (data != null) {
  for (int i = 0; i < data.length; i++) {
    if (!day.contains*(data[i].date)) {*
      day.add*(data[i]);
    }
  }
  daycount = data.length;
  print('count ${daycount}')*;
}

使用的数据模型

class Note {
  int _id;
  String _longitude;
  String _latitude;
  String _date;

1 个答案:

答案 0 :(得分:1)

要消除重复的值,您需要一种方法来确定2个Note对象是否为“相等”。如果Note相同,则可能会说2个id是相等的。也许idlongitude latitude必须 all 都相同。也许date。由你决定。

基本上,您应该覆盖==运算符和hashcode方法。如果==方法产生相同的哈希码,则hashcode运算符应返回true。

实施此操作后,可以将Note对象添加到Set而不是List中。 Set不允许重复值,它将使用对象的== /哈希码功能来确定相等性。