使用固定大小和值初始化g_hash_table

时间:2017-02-21 16:09:39

标签: hashtable glib

我需要创建一个已知大小的g_hash_table(我知道确切的密钥数),并且在开始时,我希望每个值都相同(让我们说255)。有没有比做更有效的方式:

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {  

     jLabel1.setText (String.valueOf(Integer.parseInt(jTextField1.getText()) +
     Integer.parseInt(jTextField2.getText())));
}

1 个答案:

答案 0 :(得分:2)

不,没有。 GHashTable不支持静态实例化(空或来自预先散列数据)。 14年来已经a bug report开了这个问题,但除非有人提出具体的用例(以及新的补丁),否则不太可能得到解决。

如果您要构建一个常量哈希表,您可能希望使用GNU gperf而不是GHashTable。 (请注意,尽管有名称,gperf与GLib完全无关。)

如果您担心一次构建整个哈希表的成本,您可以通过仅在第一次实际读取时插入每个条目来分摊成本 - 此时您知道默认值条目将是255。