我想在Java程序中創建一個Hashtable。 Hashtable必須有多個字段(現在我想存儲從DB讀取的3列)。如何將多個列存儲爲Hashtable存儲鍵值對。我想保留第一列作爲關鍵字,第三列作爲值。請幫忙!! 謝謝!HashTable中的多個字段
回答
您可以將您的值設置爲包含要存儲的與該關鍵字關聯的3個值的對象。
首先,你需要一個新的類,它可以存儲值:
public class Values {
public final String foo;
public final Long bar;
public final Long foobar;
public Values(final String foo, final Long bar, final Long foobar) {
this.foo = foo;
this.bar = bar;
this.foobar = foobar;
}
}
比你可以創建你Hashtable
(你真的需要線程安全的?)是這樣的:
final Map<String, Values> container = new Hashtable<String, Values>();
如果你不需要線程安全,你可以用HashMap
代替。
哈希表中的值(concurrenthashmap在大多數場景中是一個更好的選擇)可以是任何對象(甚至是db實體;所以你可以自由地將hashtable的值包裝爲你想要的任何對象)。
你是什麼意思:「該Hashtable必須有多個字段(現在我想存儲3列,我從DB中讀取)」。
HashTable可以具有鍵值對,鍵應該是唯一的,因此表中唯一且不爲空的任何列,例如主鍵可以用作哈希表中的鍵,相應的值可以是任何值你想要存儲,它可以只是第3列中的值,或者你可以製作一個複合對象來休息所有字段,並將該對象作爲值與主鍵相對應。
如果您沒有線程安全問題,請使用HashMap以獲得更好的性能。
前2列將作爲Hashtable的關鍵字段。這兩列中的值將一起決定Hashtable的值字段中的列值。 我需要線程安全,因此我使用Hashtable。 –
好吧,然後製作前兩列的複合對象和相應的值,您可以使其中的另一個複合對象作爲值使用。 – Swagatika
您可以創建一個HashTable,其中第一列將用於Key,第二列將包含Vector或數組或類。這就是你將如何創建一個不同列的哈希表
- 1. 在幾個字段索引的Hashtable
- 2. mysql中的多個字段
- 3. 組中的多個字段數據作爲一個字段
- 4. ElasticSearch多個字段
- 5. 把多個字段
- 6. uniqueEntity多個字段
- 7. 多個auto_increment字段
- 8. 爲多個字段
- 9. 表中有多少個「太多」字段?
- 10. 多個字段的搜索
- 11. 字典/ C++中的HashTable對象?
- 12. SQLite中的多個字段排序
- 13. Access VB中的多個字段驗證?
- 14. 風暴中的多個字段分組
- 15. 字段中的多個詞可視化
- 16. 多個表中的相同字段
- 17. 模型字段中的多個「角色」?
- 18. 更新表中的多個字段
- 19. 檢查語句中的多個字段
- 20. 表中的多個輸入字段
- 21. 加入Access中的多個字段(SQL)
- 22. Hashtable使用多少內存?
- 23. MySQL更新單個字段中的多個段落
- 24. 如何cancatenate在一個many2one字段中的多個字符字段?
- 25. 從一個字段中設置數據庫中的多個字段
- 26. 插入一個HashTable
- 27. 多個表格或多個字段
- 28. MYSQL從另一個表的字段更新多個字段
- 29. 切割成多個字段的第一個字段文件
- 30. 驗證表格中的兩個或多個數字字段
但我希望鑰匙是前兩列! –
那麼,那麼做一個複合對象。或者,如果Key1和Key2之間存在1-n關係,則還可以使用Key2創建第二個散列表並將其存儲爲HashTable1(帶有Key1)的值。這取決於你打算如何看待事物。如果您將Key設置爲自定義對象,請確保您實施了適當的Hashcode。 – chrisaut