3 维列表或地图

新手上路,请多包涵

我需要类似 3 维的东西(如列表或地图),我在一个循环中填充了 2 个字符串和一个整数。但是,不幸的是我不知道使用哪种数据结构以及如何使用。

 // something like a 3-dimensional myData
for (int i = 0; i < 10; i++) {
    myData.add("abc", "def", 123);
}

原文由 Evgenij Reznik 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 372
2 个回答

创建一个将三者封装在一起的对象,并将它们添加到一个数组或列表中:

 public class Foo {
    private String s1;
    private String s2;
    private int v3;
    // ctors, getters, etc.
}

List<Foo> foos = new ArrayList<Foo>();
for (int i = 0; i < 10; ++i) {
    foos.add(new Foo("abc", "def", 123);
}

如果要插入到数据库中,请编写一个 DAO 类:

 public interface FooDao {
    void save(Foo foo);
}

根据需要使用 JDBC 实施。

原文由 duffymo 发布,翻译遵循 CC BY-SA 3.0 许可协议

Google 的 Guava 代码如下所示:

 import com.google.common.collect.Table;
import com.google.common.collect.HashBasedTable;

Table<String, String, Integer> table = HashBasedTable.create();

for (int i = 0; i < 10; i++) {
    table.put("abc", "def", i);
}

上面的代码将使用如下所示的构造函数在 HashMap 内部构造一个 HashMap:

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

如果您想覆盖底层结构,您可以轻松更改它。

原文由 Tombart 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题