HashTable中的多个字段

时间:2011-09-02 06:20:11

标签: java hashtable

我想在Java程序中创建一个Hashtable。 Hashtable必须有多个字段(现在我想存储3个我从DB读取的列)。如何将多个列存储为Hashtable存储键值对。我想将第一列保留为键,将第3列保留为值。请帮忙!! 谢谢!

5 个答案:

答案 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或数组或类或其他任何内容。这就是你将如何创建具有不同列的哈希表