Я ищу как простой способ создать набор идентификационных данных. Я просто хочу смочь отслеживать то, "видел" ли я конкретный объект при пересечении графика.
Я не могу использовать регулярный Набор, потому что использование Набора "==" (равняется методу в Scala) сравнить элементы. То, что я хочу, является Набором, который использует "eq".
Там какой-либо путь состоит в том, чтобы создать Набор в Scala, который использует некоторый указанный приложением метод для тестирования равенства вместо вызова, равняется на съемочной площадке элементам? Я искал некоторый "wrapEquals" метод, что я мог переопределить, но не нашел его.
Я знаю, что мог использовать IdentityHashMap Java, но я ищу что-то более общего назначения.
Другая идея, которую я имел, состояла в том, чтобы просто перенести каждый элемент набора в другой объект, который реализации равняется с точки зрения eq, но расточительно генерировать тонны новых объектов только для получения, новое равняется реализации.
Спасибо!
Это похожий вопрос. Принятый ответ в этом случае заключался в использовании TreeSet
и предоставлении специального компаратора
.
Поскольку вам не требуется ссылка на "видимые" объекты, но просто логическое значение для "contains", я бы предложил просто использовать mutable.Set [Int]
и загрузить его значениями, полученными путем вызова System.identityHashCode (obj)
.
У пользовательских коллекций Scala достаточно концептуальной поверхности, чтобы отпугнуть большинство людей, которым нужна такая быстрая настройка.