- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于Hash数据结构,如HashSet、HashMap等,我们需要实现hashcode。然而,这并不是很方便。我们可以使用 Hashable 或 Hasher 之类的东西来代替吗?
以下是 Swift 中的示例: https://developer.apple.com/documentation/swift/hashable
最佳答案
在Java中,基本上有多种方式:
hashCode()
方法(这不是一个很好的选择,因为它会忽略您的字段)hashCode()
执行 @Override 时使用它。正如用户 Andreas 所指出的,该解决方案的一个缺点是使用此方法处理原始类型值时会出现自动装箱绕道。除此之外:您当然可以为您需要的每个类自行重写 hashCode()
,并“手动”计算字段的哈希值。或者告诉您的 IDE 为您执行此操作。
最后,更进一步,JVM 平台允许使用像 Lombok 这样的库。在编译阶段自动插入这样的方法覆盖。或者甚至为 JVM 使用其他语言,例如 kotlin 及其 data classes 。
关于java - Java有Hashable、Hasher之类的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57845313/
我需要使用键(自定义对象)和值作为自定义对象集从映射创建哈希码,我使用 Guava 18.0 @Getter public final class StockKey { @ValidIs
我需要使用不同于默认的哈希器来建立一个哈希表,所以我这样写: class foo { public: ... private: struct myhasher { size_t opera
我在一个由 handlebarsJS 提供支持的 SPA 上使用 crossroadsJS 和 hasherJS。回想起来,我可能应该在 Ember 上构建整个东西,但已经晚了,重新开始并不明智。 我
如果我使用 hash() 或 hasher.write() 函数,像 1234 这样的数字会得到相同的结果,但是一个字节slice like b"Cool" 不会。我认为应该是一样的;为什么不是呢?
所以我刚刚设置了我的 Digital Ocean droplet(服务器)并一直在努力让这个网站正常工作,但是我遇到了一个接一个的错误。我终于让网站加载了登录页面(这是应该发生的),但是当我登录时,我
我们正在从 CakePHP 2.X 迁移应用程序,但我们需要在迁移之前实现我们的移动 API。我已经关注了我能找到的所有项目,但它们似乎都适用于 v5 或更低版本。无论我做什么,Hash::make(
我目前有这段代码: crossroads.addRoute('/login', function(){ $.ajax({ url: '/login', type
我有一个看起来像这样的数据结构: pub struct X { hasher: Box, phantom: std::marker::PhantomData, } 它的用法如下: im
我刚刚开始使用 crossroads.js和 hasher.js并且我已经成功解析了我的大部分路线。我不明白的是如何回到页面的根目录。我知道我说得不对,但这是我的问题: 我导航至 http://exa
我想说,hasher 和 key_equal 之间一定有关系。如果两个元素相同(调用 equal 返回 true)它们必须具有相同的散列,否则将在错误的桶中搜索元素。 但是http://www.cpl
在 Java 6 中,我的理解是,您可以在创建 TreeSet 时向 TreeSet 提供比较器,以覆盖集合中对象的“自然顺序”。 您是否有任何想法为什么 Java 不支持提供覆盖集合中对象的“自然散
我是一名优秀的程序员,十分优秀!