我需要创建一个已知大小的g_hash_table(我知道确切的密钥数),并且在开始时,我希望每个值都相同(让我们说255)。有没有比做更有效的方式:
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
jLabel1.setText (String.valueOf(Integer.parseInt(jTextField1.getText()) +
Integer.parseInt(jTextField2.getText())));
}
答案 0 :(得分:2)
不,没有。 GHashTable
不支持静态实例化(空或来自预先散列数据)。 14年来已经a bug report开了这个问题,但除非有人提出具体的用例(以及新的补丁),否则不太可能得到解决。
如果您要构建一个常量哈希表,您可能希望使用GNU gperf而不是GHashTable
。 (请注意,尽管有名称,gperf
与GLib完全无关。)
如果您担心一次构建整个哈希表的成本,您可以通过仅在第一次实际读取时插入每个条目来分摊成本 - 此时您知道默认值条目将是255。