【发布时间】:2018-04-18 04:45:07
【问题描述】:
我无法找到包含数据类的哈希集数组的交集(我想通过标识符相交):
class Protein(val id: String, val score: Double, val molw: Double, val spc: Int)
我已将 .csv 文件中的一些数据提取到这种类型的结构中:
ArrayList<HashSet<Protein>>
所以我有六个数组列表 [每个 csv 1 个],每个列表都包含一个包含数千个蛋白质结构的散列集。到目前为止,这是我尝试获取基于常见 Protein.id 的交集 HashSet 的方法:
fun intersection(data: ArrayList<HashSet<Protein>>): HashSet<Protein> {
val intersectionSet = HashSet<Protein>(data[0])
for (i in 1..data.size) {
intersectionSet.retainAll(data[i])
}
return intersectionSet
}
这会返回一个空列表,考虑到它试图与 Protein 对象相交并作为一个整体匹配每个条件,这是有道理的。
如何调用 data[i].id 作为我的交集条件?我对 Kotlin 和数据类还很陌生 :)
【问题讨论】:
标签: java kotlin set guava hashset