Tag: 番石榴

如何在两个映射中求和值并使用guava返回值

如何将两个映射中的值相加并使用guava返回带有求和值的映射? 可以安全地假设,两个地图将具有相同的密钥集。 例如: Map filteredPrice [ 1 : 100 ] [ 2 : 50 ] [ 3 : 200 ] 其他地图 Map pkgPrice [ 1 : 10 ] [ 2 : 20 ] [ 3 : 30 ] 总结地图 Map sumPrice [ 1 : 110 ] [ 2 : 70 ] [ 3 : 230 […]

MyBatis与Guava multimap

我想使用Guava multimap作为带MyBatis的resultMap ,返回一个包含多个一对多条目的集合的结果集,但我无法弄清楚相同的语法。 以下是我的表格示例: +—-+———+———-+————-+ | ID | PART_ID | NAME | PART_FAMILY | +—-+———+———-+————-+ | 1 | 1 | bush | 300 | | 2 | 1 | a-bush | 300 | | 3 | 1 | 300-bush | 300 | | 4 | 2 | nut | 301 | +—-+———+———-+————-+ 我想要一个结果集,以便我有一个以PART_ID为键的Guava多图,以及NAME和PART_FAMILY作为结果。 例如: Index […]

使用Guava Cache将数据保存到硬盘

我是Guava Cache的新手。 如何在缓存中创建以下内容? 正常将数据保存在内存中。 当缓存大小超过给定数量时,它会将缓存中的数据保存在硬盘上的可配置文件中。

Java序列化问题,同时使用guava Lists.transform

我不得不序列化一个复杂的对象,但它的一个组件是不可序列化的(第三方图形对象),所以我创建了这个Graph类的自定义可序列化版本,并使用Guava List转换将非可序列化对象转换为自定义对象。 序列化writeObject仍然失败。 我有兴趣知道为什么吗? 我的假设是Lists.transform执行Lazily操作(保持对原始对象的隐藏引用。) 还有一个解决这个问题的方法吗?

为什么Guava没有提供转换地图键的方法

这个问题已经发布在这里了: 如何使用guava将Map 转换为Map 我认为CollinD的答案是恰当的: 所有Guava用于转换和过滤的方法都会产生惰性结果……函数/谓词仅在需要时应用,因为使用了对象。 他们不创建副本。 因此,转换很容易打破Set的要求。 比方说,例如,你有一个Map ,它包含“1”和“01”作为键。 它们都是不同的String ,因此Map可以合法地包含两个键。 但是,如果使用Long.valueOf(String)转换它们,它们都映射到值1 。 它们不再是不同的钥匙。 如果您创建地图副本并添加条目,则不会破坏任何内容,因为任何重复的密钥都将覆盖该密钥的上一个条目。 然而,一个经过时间间隔改造的Map无法强制执行唯一键,因此会破坏Map的合约。 这是事实,但实际上我不明白为什么没有这样做是因为: 当密钥转换发生时,如果2个密钥被“合并”,则可以引发运行时exception,或者我们可以传递一个标志以指示Guava为新计算的密钥获取多个可能值的任何值(failfast / failafe可能性) ) 我们可以有一个Maps.transformKeys来生成一个Multimap 在做这些事情时我有没有看到的缺点?

使用对象的字段过滤ArrayList

我有一个由Objects填充的ArrayList。 我的对象类名为Article ,有两个字段; public class Article { private int codeArt; private String desArt; public Article(int aInt, String string) { this.desArt = string; this.codeArt = aInt; } public int getCodeArt() {return codeArt; } public void setCodeArt(int codeArt) {this.codeArt = codeArt;} public String getDesArt() {return desArt;} public void setDesArt(String desArt) { this.desArt = desArt;} } 我想使用desArt字段过滤我的List,而对于测试我使用String“test”。 我使用谷歌的Guava,它允许我过滤ArrayList。 […]

guava是否有一个采用自定义哈希/等于函数的Map实现?

有人知道Guava是否有与Functionaljava的HashMap相同的版本?

对番石榴BiMap进行排序

我是Guava图书馆的新手,但发现BiMap非常适合我的需求。 我的一个问题是我需要在BiMap中对值进行排序。 通常情况下,由于它的inheritance排序,我会使用TreeMap,但是能够反转地图以查看键,就像它们是值一样。 所以我一直在寻求专家的建议来解决这个问题。 我看到的解决方案是:1。创建一个BiMap比较器并使用我自己的地图排序实用程序。 2.构建我自己的’BiTreeMap’数据结构。 有没有我考虑过的解决方案? 有没有’番石榴方式’来做到这一点我错过了? 谢谢!

在没有值的情况下向HashMap添加密钥?

有没有办法在不添加值的情况下向HashMap添加密钥? 我知道它看起来很奇怪,但我有一个HashMap<String, ArrayList> amd我想首先能够根据需要创建密钥,然后检查某个密钥是否存在,如果是,则输入适当的值,即ArrayList 那令人困惑吗?

如何使用Google Guava的Throwables.propagateIfInstanceOf()?

javadoc示例 try { someMethodThatCouldThrowAnything(); } catch (IKnowWhatToDoWithThisException e) { handle(e); } catch (Throwable t) { Throwables.propagateIfInstanceOf(t, IOException.class); Throwables.propagateIfInstanceOf(t, SQLException.class); throw Throwables.propagate(t); } 不是很具体。 真正的程序会是什么样子? 我真的不明白Throwables.propagateIfInstanceOf(Throwable, Class) , propagate() , propagateIfPossible()方法的目的。 我什么时候使用它们?