gpt4 book ai didi

list - Scala groupby 元素类型

转载 作者:行者123 更新时间:2023-12-02 21:13:05 25 4
gpt4 key购买 nike

我编写了一个文本解析器,它使用 n 个解析器(通过对 n 个样本进行训练生成)解析给定的文本片段,其中包含类型列表

列表(Parser1_Object,Parser2_Object,Parser1_Object,Parser3_Object,....)

请注意,每个对象都有参数(假设在本例中所有对象都具有名为 param 的相同参数),其值可能会有所不同。我的目标是减少列表以删除通用解析器(即具有相同参数的对象)以供进一步处理和使用。为了实现同样的目标,我正在考虑将相同类型的元素分组,然后努力减少每个组。但是我不确定如何使用类型groupBy。任何建议/指示都会有所帮助(或者如果有更好的功能方法来解决问题)。

最佳答案

您可以仅使用 getClass 按运行时类型对对象进行分组:

scala> val l = List(1, 2, "1", "2", 2.0, 3.0)
l: List[Any] = List(1, 2, 1, 2, 2.0, 3.0)

scala> l.groupBy(_.getClass)
res0: scala.collection.immutable.Map[Class[_],List[Any]] =
Map(class java.lang.String -> List(1, 2),
class java.lang.Double -> List(2.0, 3.0),
class java.lang.Integer -> List(1, 2))

您可能还想将其包装到 scala.reflect.ClassTag 中,例如 l.groupBy(x => ClassTag(x.getClass))

关于list - Scala groupby 元素类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32369083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com