首页 > 解决方案 > stream.distinct() 返回非不同元素

问题描述

我无法让我的代码正确返回不同元素的列表。我有一个listToObserve包含我的对象列表,GroupModel其中有一个SimpleStringProperty我使用该equals方法确定相等性的对象。

class GroupModel(name: String = "myGroup") {
    val nameProperty = SimpleStringProperty(this, "groupName", name)
    var name: String by nameProperty

    override fun equals(other: Any?): Boolean {
        if (this === other) return true
        if (javaClass != other?.javaClass) return false
        other as GroupModel
        if (nameProperty.value != other.nameProperty.value) return false
        return true
    }
}

这是我尝试过的:

val distinctGroups = listToObserve.map { it.group }.stream().distinct().collect(Collectors.toList()).toObservable()

我对此的理解是不同的,应该按名称比较每个组,如果相等,则不会添加它,而是添加具有完全相同名称的组。有人可以帮我找出我的错误吗?

标签: javakotlin

解决方案


推荐阅读