用变量调用哈希表

时间:2012-07-09 11:31:09

标签: java hashtable

我正在为程序使用多个哈希表viz table1 table2 table3等。每个表有3个键值对。键具有不同的值。 现在在我的程序的UI中,我有一个comobobox从用户中选择表名。选择后,我将其存储在变量中,并希望使用此变量打开相应的表。

感谢Eric Coolman为我this piece编辑了我的查询。

Hashtable table1 = new Hashtable();

table1 .put("COL1", Double.toString(dvalue1));
table1 .put("COL2", value2);
table1 .put("COL3", value3);

Hashtable table2 = new Hashtable();

table2 .put("COL1", Double.toString(dvalue4));
table2 .put("COL2", value5);
table2 .put("COL3", value6);

// reading that value back:

double dvalue1 = Double.parseDouble((String)table1.get("COL1"));
double value6= Double.parseDouble((String)table2.get("COL3"));`

这里我如何使用变量而不是table1和table2?什么是语法。我是java新手。

2 个答案:

答案 0 :(得分:4)

首先,您的结构看起来像是在object denial:您作为Hashtable对象得到的内容应该是具有3个字段的自定义类型的对象(col1,{ {1}}和col2;或更具可读性的版本。)

下一步:你可以简单地使用第三个变量来切换你读取的对象:

col3

如果Hashtable readFromMe; if (someCondition) readFromMe=table1; else readFromMe=table2; Object o = readFromMe.get("COL3"); table1,则此代码将从someCondition读取,否则将从true读取。

此外,上述代码的前5行的较短版本为table2

答案 1 :(得分:1)

将两个表放在另一个哈希表中,然后使用密钥访问所需的表。

Hashtable<String, Hashtable> tables = new Hashtable<String, Hashtable>();
Hashtable<String, String> table1 = new Hashtable<String, String>();

table1 .put("COL1", Double.toString(dvalue1));
table1 .put("COL2", value2);
table1 .put("COL3", value3);

tables.put("table1", table1);


Hashtable<String, String> table2 = new<String, String> Hashtable();

table2 .put("COL1", Double.toString(dvalue4));
table2 .put("COL2", value5);
table2 .put("COL3", value6);

tables.put("table2", table2);

// reading that value back:

double dvalue1 = Double.parseDouble(tables.get("table1").get("COL1"));
double value6= Double.parseDouble(tables.get("table2").get("COL3"));`