gpt4 book ai didi

java - 如何处理 Guava 表中的碰撞?

转载 作者:行者123 更新时间:2023-11-29 03:28:03 26 4
gpt4 key购买 nike

假设我们有一个带有简单 int count 字段的 MyBean 类,以及像这样的 Guava 表;

Table<Integer, Integer, MyBean> table; // we can instantiate like HashBasedTable.create();

当我放置一个新的 MyBean 对象并且此位置在表中有一个现有的 MyBean 对象时,我想对计数字段求和。

table.put(1, 1, new MyBean(1)); 
table.put(1, 1, new MyBean(2)); // so what will be going on ?

实际上这是一个非常简单的案例,如果它们发生碰撞,我想处理复杂的对象。

最佳答案

Table 的行为就像一个 Map,即第二个 put 覆盖第一个。您需要的是某种Multimap。有一个 issue已经为 Multitable 投票。

目前,您可以使用

Table<Integer, Integer, SomeCollection<MyBean>>

或一个

Map<SomePair<Integer, Integer>, MyBean>

我推荐后者,因为组合键比处理“多”东西要简单得多。


如果你今天感觉很糟糕,你甚至可以使用

Map<Long, MyBean>

只是不要告诉任何人这是我提出的。并正确封装 hack,这样您就不会在某处被某些 int 到 long 的自动转换所困扰。

关于java - 如何处理 Guava 表中的碰撞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19950688/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com