问题标签 [trove4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1367 浏览

java - Guava Table 的原始替代品

是否有使用原语而不是泛型类型作为键的番石榴表的替代方法?

我想使用原语来避免使用 Java Numbers 和 Java Maps 创建的附加条目对象引起的自动装箱。

我已经使用Trove TLongObjectMap推出了自己的基本 LongLongObjectTable ,但如果有可用的标准库,我更愿意使用它。

0 投票
2 回答
656 浏览

java - Trove 库队列实现

我在 java 项目中使用 trove 3.0.3 库。gnu.trove.queue (TByteQueue, TDoubleQueue ...) 中的所有类都是接口。我在哪里可以找到队列类的实现?

0 投票
1 回答
116 浏览

java - 创建大宝藏时奇怪的 OutOfMemory

在我的应用程序启动时,我正在创建容量为 75*10^6 的 trove long hash set。

Profiler 显示,该应用程序使用 1.4g。我正在尝试设置-Xmx1600m,然后内存不足。

-Xmx2000m 相同。

-Xmx2030m 相同。

-Xmx2040m 好的。

Profiler 没有看到这么大的分配,它在哪里以及为什么会发生?

0 投票
1 回答
223 浏览

java - TObjectIntMap(Trove 3)'int get(java.lang.Object key)'方法如何返回null?是文档错误吗?

我一直在研究 Trove4j 库的文档。特别是TObjectIntMap界面。根据库的文档,null如果地图中不存在密钥,则 get 方法返回。我指的文档可以在这里看到:

http://trove4j.sourceforge.net/javadocs/gnu/trove/map/TObjectIntMap.html#get%28java.lang.Object%29

在阅读(27/02/2014)时,文档状态

int get(java.lang.Object key) “返回指定键映射到的值,如果此映射不包含该键的映射,则返回 null。”

我的问题是:

null当返回类型为原始类型时,该方法如何返回int。据我所知,Integer引用只能是null. 是文档错误吗?

0 投票
2 回答
2614 浏览

java - 通过减小值来迭代 GNU Trove TObjectIntHashMap 的推荐方法是什么?

GNU Trove / trove4j TObjectIntHashMap 非常适合计算字符串出现次数:

现在一个常见的任务是请求具有最高计数的字符串或通过减少计数进行迭代。你会怎么做?

谢谢你,马塞尔

0 投票
2 回答
121 浏览

java - 来自 HashMap 的热端口 entrySet() 方法到trove4j?

我经常通过方法迭代哈希图entrySet(),期望这会更快。现在我想将我的一些代码移植到 trove's TIntObjectHashMap,但看不到枚举条目的方法。

为什么?如何移植?

0 投票
1 回答
184 浏览

java - 如何从 trove4j 设置 TXXXXArrayList 对象的大小?

如何从 Trove 设置 TXXXXArrayList 对象的大小?例如,是否可以设置的大小TIntArrayList

我发现的唯一方法是添加元素(零)。甚至允许初始化或添加原始数组的批量方法也会按元素进行复制,即加倍工作。

虽然可以使用普通 java 设置数组的大小:

它将被创建并用零填充。Trove 等效项执行两次:

首先它分配原始数组,然后将其复制到类中。

如何一步到位?

更新

Wrap 方法允许加速,但禁止作为收益增长:

更新2

容量不是大小。下面的程序打印零并抛出ArrayIndexOutOfBoundsException

0 投票
2 回答
109 浏览

java - 在 Java 中尽可能快地执行命令集合

在我的项目中,我想将脚本中的大量函数加载到集合中以保存它们并在以后(可能多次)执行它们而无需再次阅读脚本。我需要尽可能快地访问这些功能,并考虑了两种方法:

  1. 命令模式:我的第一个想法是将脚本命令作为对象(命令模式)存储在集合中,并在我需要执行脚本时在 for-each 循环中执行所有这些命令。虽然代码会更容易阅读,但我认为通过对象访问所有不同的命令会消耗大量的性能和内存。

    for (Command command : commandList) { command.execute();

  2. chars 和 Switch Case 的集合:我的第二个想法是将 char 或 int 等原始变量存储到集合中,并将 switch-case 构造放入 for-each-loop 中。我会使用原语,因为我认为它比字符串对象更快。因此我会使用像 Trove 这样的库。我认为这种方式可能比命令模式更快,因为不必访问命令对象。此外,将占用更少的内存。另一方面,我认为它可能会更慢,因为命令模式可以直接访问正确的函数,而 switch-case 构造必须多次检查 char 是否为 a、b、c、d 等等。

    for (char command : commandList) { switch(command){ case 'a': doA(); break; case 'b': doB(); break; case 'c': ... } }

你认为一种方法更好吗?你知道另一种方法吗?你会推荐哪种类型的收藏?

0 投票
1 回答
330 浏览

java - Java Trove 中的单例集合

Trove 中是否有与 Java 的 , 或 类似Collections.singletonCollections.singletonList东西singletonMap

我正在使用许多 trove 集合来减少内存占用的应用程序。但是,我一直找不到任何单例 Trove 收藏。例如,TLongHashSet使用默认构造函数创建具有 1 个元素的 a 将导致TLongHashSet具有 23 个元素的基础数组。即使将初始大小和加载因子指定为 1 和 1 仍然会产生一个包含 5 个元素的底层数组(Trove 的最低素数是 5 基于gnu.trove.impl.PrimeFinder)。除了底层数组之外,还有其他类变量可以为单例实现删除。

0 投票
1 回答
439 浏览

java - 在 Trove 哈希图中设置默认值

如何为 TLongDoubleHashMap 集合设置默认值(当键不存在时返回)。它默认返回 0,我希望它返回 NaN。

我在文档中找到了这个:

如果给定键不存在条目,则返回将从中返回的值get(long)put(long, double)默认值通常为零,但可以在集合的构建过程中更改。

但是我发现没有办法在构建过程中设置值。