问题标签 [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.
java - 使用 Google Collections 创建 Weak Multimap
是否有与用于 MultiMaps 的漂亮 MapMaker 的等价物?目前我像这样创建缓存:
MultiMap 的重点是避免嵌套列表值。有没有办法用弱键构造多图?
java - 这会导致垃圾收集问题吗
我在Google Collections之上写了一个类似于 DSL 的 Linq
所以我可以以更简洁易读的方式进行查询集合
我担心这种方法是否会导致迷你对象爆炸并导致一些垃圾收集问题(或任何其他问题)?
java - 在 Java 中构造一个列表
假设我有一个java.util.List list
并且我想通过在开头List
添加一个元素来创建一个新的(即,我想要cons和)。例如,如果是e
list
e
list
list
并且e
是5
, 那么cons(e,list)
将是
list
和的元素cons(e,list)
可以共享,但list
不能修改。
什么是最简单和/或最有效的实施方式cons
?结果不可修改是可以的。允许使用 Google 收藏库。
如果list
是 acom.google.common.collect.ImmutableList
怎么办?
java - java.util.Map 的通用测试工具?
我有一个 Map 接口的自定义实现,它做了一些花哨的事情,比如对函数的惰性求值。从外部构造后,实现应该看起来不可变(例如,不支持 put() 和 putAll() 方法)
我看起来它在最基本的条件下工作。由于它非常复杂,我相信一定有大量潜伏在线程安全、不规则操作顺序等方面的错误。
由于 Map 接口的契约是明确定义的,我确信必须存在一个通用测试集合来检查极端情况、线程安全等。
我听说 Google Collections 为他们的库运行了大约 25000 个单元测试。是否可以在某处下载它们?
java - 具有重复键的映射实现
我想要一张带有重复键的地图。
我知道有很多地图实现(Eclipse 向我展示了大约 50 个),所以我敢打赌一定有一个允许这样做。我知道编写自己的地图很容易,但我宁愿使用一些现有的解决方案。
也许在 commons-collections 或 google-collections 中有一些东西?
java - 为什么 Google Collections 中没有 SortedMultiset?
Google Collections包含Multiset
接口和TreeMultiset
类,但我惊讶地发现没有对应的SortedMultiset
接口。
类似的东西对于建模离散概率分布非常有用。
在我尝试自己实现它之前,我想知道是否有特定的原因将其排除在外,例如可能违反Multiset
或Collection
不变量,或固有的性能问题等。
编辑:我最初并没有意识到,但这实际上是 3 个单独的请求:
- 一种方法的返回类型的更改 (
TreeMultiset.entrySet
) - 与现有功能相匹配的新界面
TreeMultiset
- 一对新的方法来计算树的分支中的计数
java - 检索 ArrayListMultimap 键
我正在使用 Guava 的 ArrayListMultimap<K,V>
集合映射Integers
到Strings
. 该类提供了一个称为containsValue(Object value)
检查 Multimap 是否包含任何键的指定值的方法。一旦我确定这是真的,检索所述密钥的最佳方法是什么?
java - Google Guava 与 Apache Commons
我正在寻找 Java 中的双向地图实现,并偶然发现了这两个库:
- 谷歌番石榴(以前的“谷歌收藏”)
- Apache Commons 集合
两者都是免费的,具有我正在寻找的双向地图实现(Apache 中的 BidiMap,Google 中的 BiMap),大小惊人地几乎相同(Apache 493 kB,Google 499 kB)[编辑:不再是真的!]在所有方面都与我非常相似。
我应该选择哪一个,为什么?是否有其他等效的替代方案(必须是免费的并且至少具有双向地图)?我正在使用最新的 Java SE,因此无需人为地限制为 Java 5 或类似的东西。
java - Java:实例化 Google Collection 的 HashBiMap
我正在使用 Eclipse,并且已将其添加google-collect.1.0-rc2.jar
为引用库。然而不知何故,这仍然行不通:
Eclipse 给出以下错误:
此行有多个标记
- HashBiMap 无法解析
- Character.Integer 无法解析
- 标记“,”,“。”的语法错误 预期的
- 标记 "." 的语法错误,删除此标记
- 类 Odp 的方法 create() 未定义
我究竟做错了什么?
其他谷歌的东西,比如 Joiner,工作正常。(但 Joiner 不是通用的。)
java - Guava MultiMap 和 ConcurrentModificationException
我不明白为什么当我遍历 this 时会得到 ConcurrentModificationException multimap
。我阅读了以下条目,但我不确定我是否理解了整个事情。我试图添加一个同步块。但我的疑问是与什么同步,何时同步。
这multimap
是一个字段并像这样创建:
并像这样使用:
像这样(我试图在地图上同步这部分,但没有成功)