【发布时间】:2018-04-20 05:27:18
【问题描述】:
我有一个数据类:
data class UniqueProtein(var id: String, var spc: Int, var r: DoubleArray)
我创建了一个 HashMap<UniqueProtein, UniqueProtein>,我想将其转换为 HashSet,这样我就可以找到两个 HashMap 之间的重叠值,如下所示:
dottest(control: HashMap<UniqueProtein, UniqueProtein>, treatment: HashMap<UniqueProtein, UniqueProtein>)
var combineddata:HashSet<UniqueProtein> = control.keySet().retainAll(treatment.keySet())
IntelliJ 在两个 keySet() 调用下都抛出以下内联错误:
is public /*package*/ in 'HashMap'
但是由于我已经将对象声明为数据类,所以我不确定发生了什么......
【问题讨论】:
-
那么,你想取回
control的密钥作为一个集合,这也是treatment的一部分作为密钥? -
对 - 我正在寻找两个集合之间常见的 UniqueProtein 类对象。
-
以下两个答案都为上述问题提供了很好的解决方案:Dvarga 选择了函数式编程调用,zsmb13 选择了 intersect 方法。我会让社区决定哪个答案值得打勾,稍后再回来标记。
标签: java hashmap kotlin hashset