2011-01-26 50 views
2

我有一个二维表结构,我正在从底层数据库读取,我想知道,什么是最好的内存数据结构来存储它。 其中,它可以用于进一步阅读,操作等。在存储器中存储2D表格结构的适当数据结构是什么?

+1

你还没有定义你需要做什么操作,因此很难给出解决方案。您是否需要按照从数据库返回的顺序访问数据,然后将行存储在List中。如果这没关系,那么你可以使用地图。所有的数据都只是字符串,那么你可能只是将每一行存储在一个List中。如果数据不同,并且需要对数据进行其他处理,那么您应该创建一个bean,以便可以正确访问数据。 – camickr 2011-01-26 16:48:12

回答

0

我会做的地图的东西映射像

Map<String, Map<String,String>> table = new HashMap<String, Map<String,String>>(); 

下面是一个例子

column_a(primary), column_b, column_c 
-------------------------------- 
abc    | xyz  | 123 
def    | xxx  | 456 

所以以后你读你使用像这样的表:

map.get("abc").get("column_b").equals("xyz") 
map.get("def").get("column_c").equals("456") 

希望这有助于。 注意:我选择了第一个具有字符串键的地图,因为您的表可能没有整数作为ID。如果你认为Integer会更好,你可以改变它们。

+0

你能解释一下这个模型吗?我在想: 地图<字符串,列表> 这样:列名映射到字符串列数据列表 请解释你的模型? thnx – Larry 2011-01-26 15:05:38

1

hashmaps keyed column name =>的值数组对我有意义。

1

对于[Table] [http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Table.html]界面,番石榴图书馆有两种不同的实现方式:HashBasedTableTreeBasedTable。你应该看看。

2

在我看来,像这样的东西往往是代码味道。您可能需要考虑创建一个代表表中某一行的bean,并使用List<MyBean>而不是某些泛型表恐怖。

当然这假设你知道表格预先看起来像什么。