【问题标题】:How to check if the function of an element is contained in a collection?如何检查元素的功能是否包含在集合中?
【发布时间】:2018-10-05 08:17:24
【问题描述】:

我想覆盖集合的 .cointains 方法。我需要它返回正数,不仅如果它找到完全匹配,而且如果它找到与列表中包含的元素略有不同的元素。标准在我可以调用 .almostSimilarTo() 的方法中。

如何正确实施?是否需要 lambda?

感谢您的帮助。

【问题讨论】:

  • 元素略有不同是什么意思?如果集合有对象怎么办?我觉得你的问题有点含糊。

标签: java collections contains


【解决方案1】:

重写收集方法是一种疯狂的做法。

尝试在其他地方实现此逻辑。例如,您的类可以实现 Comparable,或者您可以使用 Comparator,或者其他许多选项。

【讨论】:

  • 还有哪些选择?
【解决方案2】:

在Java Collection 类中,contains() 使用集合中对象的equals() 方法来确定元素是否在集合中。在要插入集合的对象上覆盖 .equals() 方法,并让 .equals() 方法使用 .almostSimilarTo() 方法中的逻辑。

覆盖equals() 时,请确保您理解the equals() hashCode() contract

【讨论】:

    猜你喜欢
    • 2016-10-19
    • 1970-01-01
    • 2021-07-16
    • 2014-11-14
    • 1970-01-01
    • 2013-07-29
    • 2017-06-04
    • 2012-03-31
    • 1970-01-01
    相关资源
    最近更新 更多