2011-01-26 82 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>而不是某些泛型表恐怖。

當然這假設你知道表格預先看起來像什麼。