我想在Java程序中创建一个Hashtable。 Hashtable必须有多个字段(现在我想存储3个我从DB读取的列)。如何将多个列存储为Hashtable存储键值对。我想将第一列保留为键,将第3列保留为值。请帮忙!! 谢谢!
答案 0 :(得分:2)
首先,您需要一个可以存储值的新类:
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
。
答案 1 :(得分:0)
您可以将您的值设为一个对象,该对象包含您要存储与该关键字相关联的3个值。
答案 2 :(得分:0)
哈希表中的值(concurrenthashmap在大多数情况下是更好的选择)可以是任何对象(甚至是您的数据库实体;因此您可以自由地将哈希表的值包装为您想要的任何对象)。
答案 3 :(得分:0)
你是什么意思:“Hashtable必须有多个字段(现在我想存储我从DB读取的3列)。”
HashTable可以有键值对,键也应该是唯一的,因此表中任何一列唯一且不为空的列,例如主键可以用作哈希表中的键,相应的值可以是任何你的想要存储,它可以只是第3列中的值,或者你可以创建一个休息所有字段的复合对象,并将该对象作为主键的值。
如果您没有线程安全问题,请转到HashMap以获得更好的性能。
答案 4 :(得分:0)
您可以创建一个HashTable,其中第一列用于Key,第二列包含Vector或数组或类或其他任何内容。这就是你将如何创建具有不同列的哈希表