如何从列表 Dart 中删除重复项 |扑

     2023-02-23     170

关键词:

【中文标题】如何从列表 Dart 中删除重复项 |扑【英文标题】:How to Delete duplicate items from a List Dart | Flutter 【发布时间】:2021-12-10 15:56:34 【问题描述】:

我有一套物品。从这里我想删除所有重复的值。我试过这个 finalList = [......users!]; 和这个print(users.toSet().toList());。但两者都在打印列表中的所有数据。它没有删除重复的值。以下是我的清单

List users = [
    
      "userEmail":"tintu@gmail.com"
    ,
    
      "userEmail":"john@gmail.com"
    ,
    
      "userEmail":"tintu@gmail.com"
    ,
    
      "userEmail":"rose@gmail.com"
    ,
    
      "userEmail":"john@gmail.com"
    ,
  ];

预期输出

List users = [
    
      "userEmail":"tintu@gmail.com"
    ,
    
      "userEmail":"john@gmail.com"
    ,
    
      "userEmail":"rose@gmail.com"
    ,
  ];

【问题讨论】:

【参考方案1】:

让我们试试,这里你得到唯一列表

void main() 
  var users = [
    "userEmail": "tintu@gmail.com",
    "userEmail": "john@gmail.com",
    "userEmail": "tintu@gmail.com",
    "userEmail": "rose@gmail.com",
    "userEmail": "john@gmail.com",
  ];
  var uniqueList = users.map((o) => o["userEmail"]).toSet();
  print(uniqueList.toList());

【讨论】:

【参考方案2】:

您的尝试不起作用,因为大多数对象(包括Map)使用== 运算符的默认实现,它只检查对象身份。请参阅:How does a set determine that two objects are equal in dart? 和 How does Dart Set compare items?。

使ListSetList 方法起作用的一种方法是明确指定Set 应如何比较对象:

import 'dart:collection';

void main() 
  var users = [
    "userEmail": "tintu@gmail.com",
    "userEmail": "john@gmail.com",
    "userEmail": "tintu@gmail.com",
    "userEmail": "rose@gmail.com",
    "userEmail": "john@gmail.com",
  ];

  var finalList = [
    ...LinkedHashSet<Map<String, String>>(
      equals: (user1, user2) => user1['userEmail'] == user2['userEmail'],
      hashCode: (user) => user['userEmail'].hashCode,
    )..addAll(users)
  ];
  finalList.forEach(print);

【讨论】:

我收到错误方法 '[]' 不能无条件调用,因为接收者可以是 'null'。尝试使调用有条件(使用 '?.')或添加 null检查目标('!')。当我添加空检查它给出错误运算符'[]'没有为类型'Object'定义。尝试定义运算符'[]'。没有空安全它可以正常工作。 @MukSystem 糟糕,已修复。 它给出错误 Unhandled Exception: type 'List' is not a subtype of type 'Iterable>' @MukSystem 那是因为你原来的ListList&lt;dynamic&gt;。修复它(就像我在上面的代码中所做的那样)。

从dart列表中删除重复项的2种方法(代码片段)

本文向您展示了从Flutter中的列表中删除重复项的2种方法。第一个适用于原始数据类型列表。第二个稍微复杂一些,但适用于map****列表或对象列表。转换为Set然后反转为List这是一个简单列表的简单快速的解决方案。例子࿱... 查看详情

如何使用列表理解从列表中删除重复项? [复制]

】如何使用列表理解从列表中删除重复项?[复制]【英文标题】:Howtoremoveduplicateitemsfromalistusinglistcomprehension?[duplicate]【发布时间】:2012-05-1922:21:07【问题描述】:如何使用列表推导从列表中删除重复项?我有以下代码:a=[1,2,3,3,... 查看详情

如何从Java列表中删除重复项

】如何从Java列表中删除重复项【英文标题】:HowtoremoveduplicatesfromSetoflistinJava【发布时间】:2021-12-1314:38:04【问题描述】:我有一组列表,我想从无论每个列表中的元素顺序如何删除重复项,如下所示:我有这个作为输入[[-1,-1,2]... 查看详情

如何从我的列表中删除重复项? [复制]

】如何从我的列表中删除重复项?[复制]【英文标题】:HowcanIremoveduplicatesfrommylist?[duplicate]【发布时间】:2021-06-3014:16:05【问题描述】:我正在使用SwiftUI在视图中生成这个动态列表(显示生成列表的一部分):薰衣草柠檬石灰石... 查看详情

从列表中删除重复项?

...复项,但我想从我的适配器中删除这些重复项,并在知道如何打印后将其打印出来?提前致谢。得到:在我的卡片视图中重复行但通过API。想要:只想打印一次并删除那些重复项。我的适配器:@OverridepublicvoidonBindViewHolder(@NonNullc 查看详情

如何从 Python 列表中删除重复项并保持顺序? [复制]

】如何从Python列表中删除重复项并保持顺序?[复制]【英文标题】:HowtoremoveduplicatesfromPythonlistandkeeporder?[duplicate]【发布时间】:2010-10-0313:18:03【问题描述】:给定一个字符串列表,我想按字母顺序对其进行排序并删除重复项。... 查看详情

pandas:如何从深度嵌套的列表中删除重复项

】pandas:如何从深度嵌套的列表中删除重复项【英文标题】:pandas:howtoremoveduplicatesfromadeeplynestedlistoflists【发布时间】:2021-09-1818:18:03【问题描述】:我有一个如下所示的熊猫数据框:df=pd.DataFrame(\'text\':[\'theweatherisnicethough\',\'How... 查看详情

从 2D 列表中删除连续重复项,python?

...a2Dlist,python?【发布时间】:2014-04-1921:15:43【问题描述】:如何根据特定元素(在本例中为第二个元素)从2d列表中删除连续重复项。我尝试了一些与itertools的组合,但没有运气。谁能建议我如何解决这个问题?输入192.168.1.232>&g... 查看详情

使用 Guava 从列表中删除重复项

...singGuava【发布时间】:2012-08-2720:23:51【问题描述】:我们如何在Guavaapi的帮助下从List中删除重复项?目前我正在关注这个:privateList<T>removeDuplicate(List<T>list)returnnewArrayList<T>(newLinked 查看详情

如何从 Dart 中的列表中删除空列表?

】如何从Dart中的列表中删除空列表?【英文标题】:HowtoremoveemptylistsfromalistinDart?【发布时间】:2021-07-1107:53:14【问题描述】:我的Dart程序有问题。以下是表情符号列表:[[????,????,????],[],[????,????,????],[],[],[]]//List列表内有多个列... 查看详情

如何通过 Oracle regexp_replace 从空格分隔列表中删除重复项? [复制]

】如何通过Oracleregexp_replace从空格分隔列表中删除重复项?[复制]【英文标题】:HowtoremoveduplicatesfromspaceseparatedlistbyOracleregexp_replace?[duplicate]【发布时间】:2017-03-0815:18:48【问题描述】:我有一个名为“ABAACD”的列表。我的预期结... 查看详情

从 Python 列表中删除重复项

】从Python列表中删除重复项【英文标题】:RemovingduplicatesfromlistoflistsinPython【发布时间】:2009-07-1713:45:48【问题描述】:如果想根据每个嵌套列表的第一个元素评估重复项,谁能提出一个从嵌套列表中删除重复项的好解决方案?... 查看详情

如何删除 List<MyDataModel> 的重复项(Dart/Flutter)

】如何删除List<MyDataModel>的重复项(Dart/Flutter)【英文标题】:HowtodeleteduplicatesofaList<MyDataModel>(Dart/Flutter)【发布时间】:2020-03-1413:24:57【问题描述】:我有一个基于列表构建UI的futurebuilder,它完成了这项工作,但是由于... 查看详情

如何通过 Oracle 中的 regexp_replace 从逗号分隔列表中删除重复项?

】如何通过Oracle中的regexp_replace从逗号分隔列表中删除重复项?【英文标题】:Howtoremoveduplicatesfromcommaseparatedlistbyregexp_replaceinOracle?【发布时间】:2016-10-2607:38:39【问题描述】:我有POW,POW,POWPRO,PRO,PRO,PROUTL,TNEUTL,TNEUTL,UTL,UTLTNE,UTL,UTL... 查看详情

在 Dart 中合并两个对象列表

】在Dart中合并两个对象列表【英文标题】:MergetwolistsofobjectsinDart【发布时间】:2021-09-0412:03:51【问题描述】:我有具有参数名称和参数计数器的对象。这些对象存储在列表中。我列表中的某些项目具有重复的参数“名称”。我... 查看详情

如何通过 Oracle 中的正则表达式从逗号分隔列表中删除重复项,但我不想要重复值? [复制]

】如何通过Oracle中的正则表达式从逗号分隔列表中删除重复项,但我不想要重复值?[复制]【英文标题】:HowtoremoveduplicatesfromcommaseparatedlistbyregexinOraclebutIdon\'twantduplicatesvalues?[duplicate]【发布时间】:2018-08-0703:08:33【问题描述】:... 查看详情

java示例代码_从列表中删除重复项

java示例代码_从列表中删除重复项 查看详情

从 Ocaml 中的列表列表中删除重复项?

】从Ocaml中的列表列表中删除重复项?【英文标题】:RemovingduplicatesfromalistoflistsinOcaml?【发布时间】:2021-07-0120:24:42【问题描述】:我是Ocaml的新手,我被分配仅使用List模块删除列表列表的所有重复项。这是我写的代码:letsort_an... 查看详情