Java 如何使用番石榴连接两个表

Java 如何使用番石榴连接两个表,java,join,guava,Java,Join,Guava,事实表: Id Year Month countryId Sales 1 1999 1 1 3000 2 1999 2 1 2300 3 2000 3 2 3999 4 2000 4 3 2939 维度表: Id country province 1 US LA 2 US CA 3 US GA 4 EN LN 我用番石榴做的桌子是这样的: T

事实表:

Id Year Month countryId Sales
1  1999 1     1         3000
2  1999 2     1         2300
3  2000 3     2         3999
4  2000 4     3         2939
维度表:

Id country province
1  US      LA
2  US      CA
3  US      GA
4  EN      LN
我用番石榴做的桌子是这样的:

Table<Integer, String, Object> table = Tables.newCustomTable(
        Maps.<Integer, Map<String, Object>> newLinkedHashMap(),
        new Supplier<Map<String, Object>>() {
            public Map<String, Object> get() {
                return Maps.newLinkedHashMap();
            }
        });

    table.put(1, "Year", 1999);
    table.put(1, "Month", 1);
    table.put(1, "countyId", 1);
    table.put(1, "Sales", 3000);
    // ...... etc


    table1.put(1, "county", "US");
    table1.put(1, "provice", 1999);
    // ......

我该怎么办

Guava的
不应该像任何SQL表一样使用,因为它是一个集合。SQL的表被设计为可索引、可排序、可过滤等。Guava的
只有这些表的一小部分,而且只是间接的,关节不是它们的一部分(除非你使用转换)

您需要做的是使用两个表并循环遍历
表的元素
,然后在
表1
中找到相应的映射


在你的情况下,我相信你最好用
列表
代替
表格
,用番石榴
表格
代替
表格1
。循环浏览列表,在获取元素时生成最终对象。

数据来自哪里?它是一个数据库吗?可以在查询中进行连接吗?
table1.putAll(table2)?可能是一些不同的数据源——一个来自MySQL,另一个来自Excel——表1.putAll(表2);我是你的这个,但不是工作出来的……+1同意<番石榴中的代码>表格
用于描述数据结构,如
地图
1 1999 1 1 3000 US LA
2 1999 2 1 2300 US LA
3 2000 3 2 3999 US CA
4 2000 4 3 2939 EN LN