- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我偶然发现了 trove 的 TObjectDoubleHashMap
的问题。版本 2.0.2 不会覆盖 hashCode
方法。
最新版本的 trove (3.0.0) 包括 hashCode
.
请注意,equals
方法在两个版本中都被重写。
为什么版本 2 中没有重写 hashCode
方法?也许覆盖 hashCode
/equals
的契约是在最初编写 trove map 之后引入的?或者只是违反了契约(Contract)并且后来修复了一个错误?如果这是一个错误而不是一个功能,我会感到非常惊讶,因为主要处理散列的类为什么在具有 equals
hashCode
最佳答案
Maybe the contract for overriding
hashCode
/equals
was introduced after the trove maps were written originally?
没有。那是很久以前的事了。我相信至少早在1.1,但我找不到任何早于1.3的东西文档。
Or is it simply a violation of the contract and a bug?
是的。这是违反契约(Contract)的行为。请注意,java.util.Map
在 java.lang.Object
之上有其自己的额外等式/hashCode 约定,而 IdentityHashMap
和其他一些人故意违反了该约定。
来自javadoc :
public boolean equals(Object o)
Compares the specified object with this map for equality. Returns
true
if the given object is also a map and the twoMap
s represent the same mappings. More formally, two maps t1 and t2 represent the same mappings ift1.entrySet().equals(t2.entrySet())
. This ensures that the equals method works properly across different implementations of theMap
interface.
关于java - Trove HashMap 未实现 hashCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9293217/
我在设置现有 Maven 项目的新计算机上遇到严重问题。 Eclipse 多次提示缺少 Artifact : Missing artifact junit:junit:jar:4.8.2:test M
我正在尝试下载 gnu.trove 库,我有这个依赖项: gnu.trove trove 3.0.3 但我收到此错误: Could not find artifact g
我在 java 项目中使用 trove 3.0.3 库。gnu.trove.queue (TByteQueue, TDoubleQueue ...) 中的所有类都是接口(interface)。在哪里可
GNU trove 库是线程安全的吗?我对 TObjectDoubleHashMap 特别感兴趣。我查看了他们的文档,但没有提及任何内容,那么我们是否可以假设它不是线程安全的? 最佳答案 它具有使其线
我使用 Python 遇到了这个概念 distutils2/packaging . 我确实谷歌了,但没有完全理解这个想法,所以宁愿从更有经验的人那里得到更好的解释,以更好地吸收这个概念。 "Trove
Trove 中是否有与 Java 的 Collections.singleton、Collections.singletonList 或 singletonMap 类似的内容? 我正在开发一个应用程序
如何设置 TLongDoubleHashMap 集合的默认值(当键不存在时返回)。它默认返回 0,我希望它返回 NaN。 我在文档中找到了这个: Returns the value that will
有没有一种有效的方法可以将 Trove map 中的所有值设置为零? 现在我正在这样做: public static class NcZeroD implements TDoubleProce
目前,我正在使用 Guave 的 ArrayListMultiMap,我可以在其中处理超过 100.000 个项目。映射的键是一个字节数组,值为long。 现在我想减少开销。 我的想法是仅使用原始集合
我想在我的 java 项目中使用 Trove-1.0.2 jar 作为 map 。我使用 Eclipse IDE。我在构建路径中使用“添加外部 jars”添加了 Trove jar,但仍然得到 Cla
我正在使用 LinkedHashMap在我的程序中。但我需要一个具有原始数据类型的。我们有 map 但没有订购?对订购的有任何想法吗? 最佳答案 目前在 Trove 中没有类似 LinkedHashM
我偶然发现了 trove 的 TObjectDoubleHashMap 的问题。版本 2.0.2 不会覆盖 hashCode方法。 最新版本的 trove (3.0.0) 包括 hashCode .
出于性能原因,我正在将一些代码迁移到 GNU trove。 但是,我确实有一些 TreeSet,我需要相当快的更新和查找以及排序迭代 - TreeSet 的主要用例。当然,我会回顾一下它的使用,并检查
Trove 分类器列表位于:http://pypi.python.org/pypi?:action=list_classifiers 当我创建 PyPI 包时,我不确定是否需要将“ parent ”包
GNU Trove/trove4j TObjectIntHashMap 非常适合计算字符串出现次数: TObjectIntHashMap map = new TObjectIntHashMap<>()
最近我使用自动化脚本(devstack)安装了 openstack trove。成功安装并创建一些用户和项目后,我设法在其中创建一个数据库实例和数据库。不幸的是,我要构建的每个数据库实例(通过命令行或
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我想在一些 Trove 集合周围放置不可修改的包装器:我已经检查了 Trove 文档,但我似乎无法找到一种简单的方法来做到这一点(我可能忽略了一些明显的东西)。 到目前为止,每次我需要这样一个不可修改
我刚刚了解了 trove 库以及它如何比 JDK 的 Maps 更节省内存。我之前使用 HashMap 来存储 totalSize = 2^N 双数组 条目,如下所示: final Map myTab
在最近的一次采访中,有人问我 HashMap 在 Java 中是如何工作的,我能够很好地解释它并解释在最坏的情况下 HashMap 可能会由于链接而退化为列表。我被要求想出一种方法来提高这种表现,但在
我是一名优秀的程序员,十分优秀!