如何过滤 RXJava 中 observable 发出的重复值?

2024-03-25

我有一个对象集合,我想在其中抑制重复的项目。我知道关于Distinct http://reactivex.io/documentation/operators/distinct.html运算符,但如果我没有记错的话,它会通过正确覆盖的哈希码方法来比较项目。但是,如果我的哈希码为同一对象返回不同的值,并且我想自己设置相等性,该怎么办? unique 有 2 个重载方法 - 一种没有参数,一种带有 Func1 参数,我想我应该使用第二种方法,但是精确度如何?

    .distinct(new Func1<ActivityManager.RunningServiceInfo, Object>() {
                        @Override
                        public Object call(ActivityManager.RunningServiceInfo runningServiceInfo) {
                            return null;
                        }
                    })

是的,你是对的,你需要保持一致equals() and hashcode()您的对象上能够使用的方法distinct()因为在幕后distinct运算符使用HashSet.

的版本distinct with a Func1允许您将对象转换为您想要不同的对象(但必须实现一致equals and hashcode方法)。

假设我有一个Observable<Person> where Person是这样的:

class Person {
    String firstName;
    String lastName;
}

然后要计算不同名字的数量,我可以这样做:

persons.distinct(person -> person.firstName).count();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何过滤 RXJava 中 observable 发出的重复值? 的相关文章

  • Spring 配置:无法找到 Spring NamespaceHandler

    配置问题 无法找到 XML 模式名称空间的 Spring NamespaceHandler http www springframework org schema tx http www springframework org schema
  • PDFBox 更改线条颜色

    我使用 pdfbox 1 8 5 并尝试使用绘制彩色线PDPageContentStream drawLine 我尝试过PDPageContentStream setNonStrokingColor 255 0 0 但它不起作用 我也没有找
  • 为什么源码中的根包叫“com”? [复制]

    这个问题在这里已经有答案了 在大多数源代码中 根包 文件夹被命名为 com 为什么会这样 它只是约定俗成还是代表着什么 The 习俗 http download oracle com javase tutorial java package
  • App Engine 日志中的 /_ah/queue/__deferred__

    我有一个使用 Google Cloud SQL 的 App Engine 应用程序 并且从我的应用程序的页面中我正在执行一些数据库操作 每当访问此页面时 它都无法执行所有数据库操作 当我进入控制台时 我看到的只是 ah queue defe
  • IBM WebSphere MQ 2042 错误

    我有以下代码 int openOptions MQC MQOO INQUIRE MQC MQOO FAIL IF QUIESCING MQC MQOO INPUT SHARED 执行时 我收到错误 com ibm mq MQExceptio
  • 改变 H2 中的序列

    我在生产中使用 Postgres 数据库 在测试中使用 H2 我想为现有表创建一个新序列 所以在 Liquibase 中我写了这个
  • 如何使 Java 中的自定义泛型类型链表排序?

    我正在用 java 编写自己的泛型链表 而不是使用 java 集合链表 链表的add方法由以下代码组成 public void add T item int position Node
  • 如何在生产环境中运行 spring boot 可执行 jar?

    Spring Boot 的首选部署方法是通过内部包含 tomcat 的可执行 jar 文件 它是从一个简单的开始java jar myapp jar 现在 我想将该 jar 部署到 EC2 上的 Linux 服务器上 我是否遗漏了某些内容
  • Wicket setResponsePage() 方法如何工作?

    在学习 JSP 和 servlet 时 我听说了重定向和调度 他们中的哪一个做 Wicket 的setResponsePage 履行 What setResponsePage确实取决于几个因素 您调用 setResponsePage 的次数
  • JSF 2.0 动态属性,无需创建新组件

    如何向未定义这些属性的组件添加新属性而不创建自己的属性 我想做这样的事情
  • 如何处理过时的连接?

    我们的应用程序是一个 J2EE 应用程序 在 Websphere 6 1 上通过 Mainframe DB2 后端使用 Struts EJB Hibernate 最近已投入生产 我们收到过时的连接异常当用户第一次或有时登录应用程序时 此异常
  • 避免实现接口中存在的方法 - java

    我有一个如下所示的界面 public interface a public void m1 public void m2 public void m3 public class A implements a public void m3 i
  • 将 AOP 与 OSGI 结合使用的最佳解决方案?

    我正在使用 Equinox 因此 Equinox Aspect 项目似乎是理所当然的 但该项目似乎处于非活动状态 并且只有一页文档 让我最终悬而未决 除了那个项目之外 我没有看到在 OSGI 中使用 AOP 的很多选项 让我知道你们的想法以
  • Dao 和服务接口的需求

    我是Spring Mvc的新手 在很多教程中 我发现有一个像这样的Dao接口 public interface StudentDAO public List
  • java 对字母数字字符串进行排序

    我有这个数组存储用户添加的一些 URL 的后缀 U2 U3 U1 U5 U8 U4 U7 U6 当我这样做时 for Map
  • 面向 Clojure 用户的 Java

    我一直在断断续续地使用 Lisp 并且正在赶上 clojure clojure的好处是我可以自然地使用所有的java函数 而clojure的坏处也是我必须自然地了解java函数 例如 我不得不花一些时间 谷歌搜索 来查找 Java 中的平方
  • ZipInputStream.getNextEntry() 如何工作?

    假设我们有这样的代码 File file new File zip1 zip ZipInputStream zis new ZipInputStream new FileInputStream file 假设您有一个包含以下内容的 zip
  • 为什么枚举可以有包私有构造函数?

    既然枚举构造函数只能由其常量调用 为什么允许它是包私有的呢 构造函数实际上不是包私有的 它是隐式的private接口方法的隐式方式public即使您不添加关键字 JLS 的相关部分 8 8 3 http docs oracle com ja
  • 了解 Collection.isEmpty() 和 Collection.size() == 0 之间的区别? [复制]

    这个问题在这里已经有答案了 我读过很多关于两者之间差异的文章isEmpty and size gt 0 用于检查collection是否为空并发现isEmpty 表现超过size 但我无法轻易理解为什么性能isEmpty 即使 isEmpt
  • 添加 2 个 BigDecimal 值 [重复]

    这个问题在这里已经有答案了 class Point BigDecimal x BigDecimal y Point double px double py x new BigDecimal px y new BigDecimal py vo

随机推荐

  • 如何在文本输入中集中文本

    一个简短的问题 有没有办法在react native中集中文本Textinput 这是 jsx 中的标记
  • 如何使用 Node.js zlib 模块和选项?

    我需要使用 zlib 以极端压缩级别压缩 Node js 中的缓冲区 输出的标头应为 78 DA 除非我遗漏了什么 否则 Node js 文档并没有真正描述如何使用 zlib Deflate 类 它不接受任何参数 http nodejs o
  • wkhtmltopdf 段错误

    我正在尝试将 wkhtmltopdf 放到 virtualbox ed ubuntu 12 04 64 位服务器上 到目前为止还没有运气 存储库中的包想要运行 xserver 和静态版本 wkhtmltopdf google com tes
  • JavaScript - 平滑移动/调整大小

    如何在一段时间内实现对象的平滑调整大小或移动 我应该以小于像素的单位更改对象的位置吗 我目前正在使用 setTimeout 进行计时 是否有比 setTimeout 在一段时间内移动对象更有效的方法 使用 jQuery 怎么样 animat
  • 函数式语言中的多线程? (序言)

    当我的朋友在学校开始学习 Prolog 时 我嘲笑他学习了一门无用的语言 然而 他向我展示了一些我从来不知道可能发生的东西 我想知道这个技术从何而来 技术是这样的 permutation List isAMember X List dele
  • UITableViewCell 复选标记在点击时打开和关闭

    我正在处理表格视图 我希望能够点击每个单元格 点击时 它会在单元格上显示一个复选标记 现在我有一些代码可以实现此功能 checkmarks when tapped func tableView tableView UITableView d
  • FlutterFirebaseCorePlugin.java 使用或覆盖已弃用的 API

    好吧 我运行我的程序时没有导入 firebase core firebase auth 和 cloud firestore 我的代码运行得很好 但是我使用 firebase 注册了我的应用程序 它仍然运行得很好 但是一旦我导入Firebas
  • 在 NLTK 3.0 中使用 Wordnet 从 Synset 中提取单词

    前段时间 SO上有人问如何检索给定同义词集的单词列表 https stackoverflow com questions 24664250 how do i print out just the word itself in a wordn
  • 常量字符串将存储在内存中的哪里?

    有时我们在 C 编程中使用这种类型的代码 char p Sam 这里常量字符串 Sam 的地址将被存储在字符指针p中 现在在这里我想问一下 Sam 会存放在哪里 字符串 Sam 通常存储在与全局常量相同区域的全局内存中 但是 如果您这样做
  • 如何检查背景图像是否已加载?

    我想在 body 标签上设置背景图像 然后运行一些代码 像这样 body css background image http picture de image png load function alert Background image
  • 在 ASP.NET MVC 中解析 JSON 值时出错?

    我正在尝试使用 StackOverflow 的搜索 API 来搜索问题 我正在使用此操作来执行解析 public ActionResult StackExchange string sq string url http api stacko
  • 如何更改页脚 由 Drupal 及其链接提供支持?

    我正在 Drupal 上工作 我想知道如何更改由 Drupal 提供支持的页脚文本以及为其提供的链接 我想要 版权所有 2012 我的网站名称 保留所有权利 我无法得到它 任何人都可以帮助我 只需转到 结构 gt 块 gt 添加块 将块标题
  • 此构造函数不带参数 lcd

    这是我尝试显示湿度传感器数据的代码 到我的液晶显示器 当我运行这个程序时 回溯 最近一次调用最后一次 文件 lcd py 第 7 行 lcd CharLCD cols 16 rows 2 pin rs 37 pin e 35 pins da
  • 如何在重定向到login.aspx后保留url中的参数

    我有以下路线 语言 控制器 mvc 动作 id 一旦用户选择了语言 就会以路由值语言进行维护 http localhost 4000 de Account mvc 注册 http localhost 4000 de Account mvc
  • 鼠标左键弹起事件和openfiledialog

    我的网格中只有很少的图像 然后当我单击按钮时 会出现 打开文件对话框 当然 在图像上方 Microsoft Win32 OpenFileDialog dlgOpenFiles new Microsoft Win32 OpenFileDial
  • 像 Mobile Safari 在其选项卡中那样淡入/淡出 UIScrollView 的内容

    注意 我在下面的更新答案中添加了我的新解决方案 我尝试重现我们在 iPhone iPod touch 上的 Mobile Safari 选项卡中看到的效果 基本上 它是一个 UIScrollView 包含 4 个可重用的 UIView 充当
  • Bootstrap中的col-lg-*、col-md-*和col-sm-*有什么区别?

    它们之间有什么区别col lg col md and col sm 在 Twitter Bootstrap 中 2020年更新 引导程序5 In 引导程序5 阿尔法 有一个新的 xxl size col 0 xs col sm 576px
  • 无法使用 gmail smtp 服务器发送邮件(讨论中)

    我正在尝试设置话语 http www discourse org 这是一个rails3 web应用程序 但在使用gmail smtp服务器配置smtp时遇到一些问题 我昨天注册了一个新的gmail帐户 可以登录浏览器和电子邮件客户端软件 然
  • 使用 jquery validate 插件返回远程字符串

    从jquery文档中 描述了jquery validate插件的远程功能 The response is evaluated as JSON and must be true for valid elements and can be an
  • 如何过滤 RXJava 中 observable 发出的重复值?

    我有一个对象集合 我想在其中抑制重复的项目 我知道关于Distinct http reactivex io documentation operators distinct html运算符 但如果我没有记错的话 它会通过正确覆盖的哈希码方法