3 维列表或地图
2022-09-04 05:36:26
我需要一个类似3维的东西(如列表或地图),我在循环中用2个字符串和一个整数填充。但是,不幸的是,我不知道使用哪种数据结构以及如何使用。
// something like a 3-dimensional myData
for (int i = 0; i < 10; i++) {
myData.add("abc", "def", 123);
}
我需要一个类似3维的东西(如列表或地图),我在循环中用2个字符串和一个整数填充。但是,不幸的是,我不知道使用哪种数据结构以及如何使用。
// something like a 3-dimensional myData
for (int i = 0; i < 10; i++) {
myData.add("abc", "def", 123);
}
创建一个将这三者封装在一起的对象,并将它们添加到数组或 List 中:
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 实现。
谷歌的番石榴代码看起来像这样:
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);
}
上面的代码将在哈希映射中构造一个哈希映射,构造函数如下所示:
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();
}
});
如果要覆盖底层结构,可以轻松更改它。