我正在为程序使用多个哈希表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新手。
答案 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"));`