问题标签 [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 投票
2 回答
1258 浏览

java - 按需将数据从文件加载到集合的最有效方法是什么?

我正在开发一个 java 项目,该项目将允许用户解析可能有数千行的多个文件。解析的信息将存储在不同的对象中,然后将其添加到集合中。

由于 GUI 不需要一次加载所有这些对象并将它们保存在内存中,因此我正在寻找一种从文件加载/卸载数据的有效方法,以便仅在用户请求时将数据加载到集合中.

我现在只是评估选项。我还考虑过这样一种情况,在将数据子集加载到集合中并将其呈现在 GUI 上之后,重新加载先前观察到的数据的最佳方式。重新运行解析器/填充集合/填充 GUI?或者可能找到一种方法将集合保存到内存中,或者序列化/反序列化集合本身?

我知道如果执行某种数据过滤,加载/卸载数据子集会变得很棘手。假设我过滤了 ID,所以我的新子集将包含来自之前分析的两个子集的数据。这没问题,因为我将整个数据的主副本保存在内存中。

我读过 google-collections 在处理大量数据时既好又高效,并提供了简化很多事情的方法,因此这可能提供一种替代方法,让我可以将集合保存在内存中。这只是泛泛而谈。关于使用什么集合的问题是一个单独且复杂的事情。

你知道这类任务的一般建议是什么吗?我想听听你对类似场景做了什么。

如果需要,我可以提供更多细节。

0 投票
2 回答
119 浏览

java - 使用带有泛型的 MutableClassToInstanceMap 编译错误

我在 putInstance 方法调用中收到以下编译错误“MutableClassToInstanceMap 类型中的方法 putInstance(Class, T) 不适用于参数 (Class, Number)”。有谁知道我做错了什么?谢谢!

0 投票
6 回答
9413 浏览

java - Java中的链表有快速的concat方法吗?

如何通过 jdk1.6、google 或 apache commons 集合或其他方式将 O(1) 中的两个链表与 Java 连接起来?例如,在 jdk 中只有 addAll 方法是 O(n)。

我想念的另一个功能是连接两个列表,其中每个列表都可以按相反的顺序排列。为了说明这一点,假设两个列表 a->b->c 和 e->f->g 可以合并到

  1. a->b->c->e->f->g
  2. a->b->c->g->f->e
  3. c->b->a->e->f->g
  4. c->b->a->g->f->e

你知道这样的列表实现还是我必须实现自己的链表?了解如何调整现有解决方案也很有帮助(例如 jdk LinkedList 只有很多私有方法)。这些功能在我看来非常明显,希望我不会错过一些愚蠢的东西。

正如 MicSim 指出的问题,在 Java 中以恒定时间合并两个列表是相关的,但不是真正的重复!现在的问题是:

  1. 其他集合库可以吗?
  2. 如何连接逆?
0 投票
3 回答
575 浏览

java - GC 是否保证清除的引用按拓扑顺序排入 ReferenceQueue?

假设有两个对象AB,并且有一个指针A.x --> B,我们创建,比如说,WeakReferences 到两个AB,并带有一个关联的ReferenceQueue

假设两者都A变得B无法访问。直觉B上不能认为是不可到达A的。在这种情况下,我们是否能以某种方式保证各个引用将按直观(没有循环时的拓扑)顺序排列ReferenceQueue?即 ref(A) 在 ref(B) 之前。我不知道——如果 GC 将一堆对象标记为无法访问,然后以不特定的顺序将它们排入队列会怎样?

我正在审查番石榴的Finalizer.java,看到这个片段:

frqReference是对 used 的 PhantomReference ReferenceQueue,所以如果这是 GC'ed,没有 Finalizable{Weak, Soft, Phantom}References 可以是活动的,因为它们引用了队列。所以它们必须在队列本身可以被 GC 之前被 GC ——但是,我们是否得到保证这些引用将按ReferenceQueue它们“收集垃圾”的顺序排入队列(就像他们得到 GC'一个接一个)?该代码暗示存在某种保证,否则理论上未处理的引用可能会保留在队列中。

谢谢

0 投票
2 回答
638 浏览

java - Google Collections API 是否具有 Ruby Enumerable#inject 方法的等效项?

我通读了javadoc,找不到任何类似的东西。

0 投票
1 回答
466 浏览

java - 如何对谓词进行多线程集合迭代操作?

为了抽象起见,让我们假设我有一个

其中关键是工资门槛。或者对于熟悉谷歌收藏的人来说,它会是 Multimap

我想对每个员工的薪水进行数据库查找,如果低于薪水阈值,则将其从集合中删除。如何以多线程方式执行此操作,最好使用固定线程池执行程序?

同样,对于精通谷歌收藏的人,如果通过 Predicate 完成数据库查找和过滤收藏,我将不胜感激。

0 投票
4 回答
4287 浏览

collections - 给我一个Multi-set的实际用例

我想知道一些实际用例(如果它们与任何编程语言无关/绑定会更好)。我可以将 Sets、Lists 和 Maps 与实际用例相关联。

例如,如果您想要一本书的词汇表,其中您想要的术语按字母顺序列出并且位置/页码是值,您将使用集合 TreeMap(OrderedMap which is a Map)

不知何故,我无法将 MultiSet 与任何“实用”用例相关联。有人知道任何用途吗?

http://en.wikipedia.org/wiki/Multiset并没有告诉我足够的信息 :)

PS:如果你们认为这应该是社区维基版的,那没关系。我没有这样做的唯一原因是“有一个明确的客观方法可以回答这个问题”。

0 投票
3 回答
2162 浏览

java - 带有 google-collections 的多个键和值

我想使用 google-collection 将以下文件保存在具有多个键和值的哈希中

前三列是不同的键,最后两个整数是两个不同的值。我已经准备了一个代码,它把这些行分块溢出。

不幸的是,我不知道如何将这些信息保存在 google-collection 中?

先感谢您。

此致,

0 投票
4 回答
4985 浏览

java - Iterables.find 和 Iterators.find - 不是抛出异常,而是获取 null

我正在使用 google-collections 并试图找到满足 Predicate 的第一个元素,如果不是,则返回“null”。

不幸的是,当没有找到元素时,Iterables.find 和 Iterators.find 会抛出 NoSuchElementException。

现在,我被迫做

我可以用“try/catch”包围并做同样的事情,但对于我的用例,我会遇到很多找不到元素的情况。

有没有更简单的方法来做到这一点?

0 投票
1 回答
4364 浏览

java - 在 CLASSPATH 中有 Jar 的终端中编译 Java 代码

如何在 CLASSPATH 中使用 google-collections 在终端中使用 javac 编译代码?

尝试在终端中使用 javac 编译的代码示例(在 Eclipse 中工作)

在终端编译

我的类路径