当前位置: 首页 > 知识库问答 >
问题:

我如何在小黑麦兵变中分类

慎建本
2023-03-14

其他反应性库(如project reactor)为出版商提供排序方法,但在mutiny中没有这种方法。他们的文档甚至没有提到这一点。

https://smallrye.io/smallrye-mutiny

现在我正在通过这样做来实现上述功能

multi.collectItems()
.asList()
.map(
list -> {
  list.sort();
  return list;
})
.convert()
.with(listUni -> Multi.createFrom().iterable(listUni.await().indefinitely()))

有没有更好的方法来做到这一点?

共有2个答案

孟杰
2023-03-14

我使用的另一种方法是,一旦出现,就将multi合并到TreeMap中。collect()。in(TREE\u MAP\u SUPPLIER,MULTI\u MAP\u累加器)

南门洋
2023-03-14

我不相信有一个内置的/更好的方法来做到这一点。

穆特尼通常以在其核心中拥有一组“精简”的运算符为荣,并允许您根据需要构建其他更复杂的运算符。他们试图避免Reactor情况,即您对几种核心类型有100种方法,并且没有大量背景知识,通常很难知道哪些方法是相关的。

我觉得这不是坏事。其他反应式框架肯定有这些内置的排序操作符,但这里有一个危险——人们认为他们仍然可以将它们视为无限的、神奇排序的发布者,因为任何地方都没有任何收藏的迹象。当然,您不能这样做——在内部,这些框架必须维护一个底层集合来对数据进行排序,然后在流完成时只输出其中的内容。然而,这并不是很清楚,忽视这一事实通常会导致意外的速度减慢和OutOfMemoryError。相反,在您的示例中,很明显,此流使用底层集合对数据进行排序。

在你的例子中,我只改变了一件小事,但与你的问题无关——我会用:

<代码>列表。流()。排序()。collect(Collectors.toList())

...在您的map调用中,而不是对可变列表进行排序。在反应式流中突变数据结构有点代码气味。

 类似资料:
  • Quarkus的(某种程度上)新的反应式API非常棒,但它在编写代码时引入了一些复杂性(在我看来,很像JavaScript中的异步代码)。它是如何与metrics/tracing/jwt API集成的?或者任何通过线程上下文传递的内容? Thnx

  • 我在Quarks应用程序中使用Smallrye Mutiniy反应库,因为它在Quarks应用程序中本机受支持。 我正在尝试为服务类编写单元测试。我不确定如何为返回Uni/Multi的方法编写单元测试。 一种返回Uni的方法 为上述方法实施的单位 控制台日志

  • 在Quarkus和小黑麦叛变案中工作,我不知道如何处理赔偿。 我有一份员工名单,我必须更新数据库中的所有员工。数据访问对象(EmployeeDao)具有以下方法:

  • 问题内容: 我正在尝试使用UCI存储库中的汽车评估数据集,并且想知道是否存在方便的方法来对sklearn中的分类变量进行二值化。一种方法是使用LabelBinarizer的DictVectorizer,但是在这里我得到了k个不同的特征,而为了避免共线性化,您应该只有k-1个。我想我可以编写自己的函数并删除一列,但是这种记账是乏味的,是否有一种简单的方法来执行这样的转换并得到一个稀疏矩阵? 问题答案

  • 我有一个redis哨兵配置,有一个主,两个从和3个哨兵运行。我注意到,在某个时候,哨兵可能会更换主人,选择一个奴隶作为主人。这给作为独立客户机连接到主节点的应用程序带来了问题(我正在修改代码以使用哨兵)。我想知道是否可以通过连接到sentinel客户机来切换主服务器,即通过'' 有人能让我知道是否有一个命令,我可以用来切换主IP吗?

  • 问题内容: 作为我的学术项目的一部分,我需要将一堆任意句子解析为一个依赖关系图。经过大量搜索后,我得到了可以使用Malt Parser与其预先训练好的语法分析器解析文本的解决方案。 我已经从http://www.maltparser.org/mco/mco.html下载了预训练模型(engmalt.linear-1.7.mco)。但是我不知道如何使用此语法文件和麦芽解析器(通过麦芽的python接