问题标签 [guava]

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 回答
2137 浏览

java - 使用 Google Collections 创建 Weak Multimap

是否有与用于 MultiMaps 的漂亮 MapMaker 的等价物?目前我像这样创建缓存:

MultiMap 的重点是避免嵌套列表值。有没有办法用弱键构造多图?

0 投票
3 回答
904 浏览

java - 这会导致垃圾收集问题吗

我在Google Collections之上写了一个类似于 DSL 的 Linq

所以我可以以更简洁易读的方式进行查询集合

我担心这种方法是否会导致迷你对象爆炸并导致一些垃圾收集问题(或任何其他问题)?

0 投票
10 回答
5618 浏览

java - 在 Java 中构造一个列表

假设我有一个java.util.List list并且我想通过在开头List添加一个元素来创建一个新的(即,我想要cons和)。例如,如果是elist elistlist

并且e5, 那么cons(e,list)将是

list和的元素cons(e,list)可以共享,但list不能修改。

什么是最简单和/或最有效的实施方式cons?结果不可修改是可以的。允许使用 Google 收藏库。

如果list是 acom.google.common.collect.ImmutableList怎么办?

0 投票
2 回答
2200 浏览

java - java.util.Map 的通用测试工具?

我有一个 Map 接口的自定义实现,它做了一些花哨的事情,比如对函数的惰性求值。从外部构造后,实现应该看起来不可变(例如,不支持 put() 和 putAll() 方法)

我看起来它在最基本的条件下工作。由于它非常复杂,我相信一定有大量潜伏在线程安全、不规则操作顺序等方面的错误。

由于 Map 接口的契约是明确定义的,我确信必须存在一个通用测试集合来检查极端情况、线程安全等。

我听说 Google Collections 为他们的库运行了大约 25000 个单元测试。是否可以在某处下载它们?

0 投票
19 回答
274104 浏览

java - 具有重复键的映射实现

我想要一张带有重复键的地图。

我知道有很多地图实现(Eclipse 向我展示了大约 50 个),所以我敢打赌一定有一个允许这样做。我知道编写自己的地图很容易,但我宁愿使用一些现有的解决方案。

也许在 commons-collections 或 google-collections 中有一些东西?

0 投票
2 回答
924 浏览

java - 为什么 Google Collections 中没有 SortedMultiset?

Google Collections包含Multiset接口和TreeMultiset类,但我惊讶地发现没有对应的SortedMultiset接口。

类似的东西对于建模离散概率分布非常有用。

在我尝试自己实现它之前,我想知道是否有特定的原因将其排除在外,例如可能违反MultisetCollection不变量,或固有的性能问题等。


编辑:我最初并没有意识到,但这实际上是 3 个单独的请求:

  1. 一种方法的返回类型的更改 ( TreeMultiset.entrySet)
  2. 与现有功能相匹配的新界面TreeMultiset
  3. 一对新的方法来计算树的分支中的计数
0 投票
1 回答
3034 浏览

java - 检索 ArrayListMultimap 键

我正在使用 Guava 的 ArrayListMultimap<K,V>集合映射IntegersStrings. 该类提供了一个称为containsValue(Object value)检查 Multimap 是否包含任何键的指定值的方法。一旦我确定这是真的,检索所述密钥的最佳方法是什么?

0 投票
5 回答
68078 浏览

java - Google Guava 与 Apache Commons

我正在寻找 Java 中的双向地图实现,并偶然发现了这两个库:

两者都是免费的,具有我正在寻找的双向地图实现(Apache 中的 BidiMap,Google 中的 BiMap),大小惊人地几乎相同(Apache 493 kB,Google 499 kB)[编辑:不再是真的!]在所有方面都与我非常相似。

我应该选择哪一个,为什么?是否有其他等效的替代方案(必须是免费的并且至少具有双向地图)?我正在使用最新的 Java SE,因此无需人为地限制为 Java 5 或类似的东西。

0 投票
1 回答
3069 浏览

java - Java:实例化 Google Collection 的 HashBiMap

我正在使用 Eclipse,并且已将其添加google-collect.1.0-rc2.jar为引用库。然而不知何故,这仍然行不通:

Eclipse 给出以下错误:

此行有多个标记

  • HashBiMap 无法解析
  • Character.Integer 无法解析
  • 标记“,”,“。”的语法错误 预期的
  • 标记 "." 的语法错误,删除此标记
  • 类 Odp 的方法 create() 未定义

我究竟做错了什么?

其他谷歌的东西,比如 Joiner,工作正常。(但 Joiner 不是通用的。)

0 投票
5 回答
7735 浏览

java - Guava MultiMap 和 ConcurrentModificationException

我不明白为什么当我遍历 this 时会得到 ConcurrentModificationException multimap。我阅读了以下条目,但我不确定我是否理解了整个事情。我试图添加一个同步块。但我的疑问是与什么同步,何时同步。

multimap是一个字段并像这样创建:

并像这样使用:

像这样(我试图在地图上同步这部分,但没有成功)