【发布时间】:2019-02-07 17:11:23
【问题描述】:
我正在尝试使用 Cuckoo Hash 方法创建一个哈希函数。当我想将表存储在二维数组中时,问题就来了,每一列代表一种类型的哈希函数,它是索引。当我试图使它更通用时,我也遇到了使表本身成为通用类型的问题。但是,我找不到任何可以让我这样做的东西。
我尝试使用这里提到的方法:How to create a generic array in Java? 但由于我缺乏知识,我无法通过创建一个新类来让它工作。我也尝试过使用 Object 数组,它一直有效,直到我需要从中获取数据,它只是拒绝让我将它转换为 Node,除非我将它包装在一个函数中。这种方式变得混乱且充满潜在的错误
class CuckooHash<Key, Node> {
class Node{ // Node of a hash to store key and value
Key key ;
Value value ;
}
int capacity ;
Node[][] table = (Node[][]) Array.instanceOf(new Class<Node[]>, capacity ) ; // I tried to mimic C dynamic array base on what I was able to grapsh
table = (Node []) Array.instanceOf(new Class<Node>, capacity) ;
基本上,我希望 table 成为具有通用类型的二维数组,并以一种全面、最简洁的方式进行。附带说明一下,我确实知道 ArrayList 是可用的,但出于我的目的,这就是我所坚持的
【问题讨论】:
标签: java hash computer-science