有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java每个数组表示一个位模式

我目前正在尝试实现可扩展哈希。它将使用bucket存储从文本文件中获取的ID。每个id(即10111)将进入一个具有固定大小的桶中。每个bucket将是一个节点数组。我最大的问题是,我试图确定每个桶将如何用位模式表示。例如:

000
001
010
011
100
101
110
111

每个存储桶将代表(至少1个)上述位模式。如果一个存储桶达到了它能容纳的最大值(这是一个固定的大小),并且需要放入其他东西,那么位模式将增加1位,因此它现在将是0000、0001、0010。。。等

从本质上讲,我只是很困惑如何让每个bucket表示至少一个位模式,以便我可以将每个id与每个bucket的位模式进行比较,并为其找到合适的位置


共 (2) 个答案

  1. # 1 楼答案

    尽量使每个桶代表一个唯一的数字。可以从0开始,递增1。这个数字是以10为基数的整数。但是通过将bucket模式转换为二进制来保存它

    Integer.toString(x, 2) 
    

    如果你需要把它转换回二进制,你可以这样做

    Integer.valueOf(binary_value, 2)
    
  2. # 2 楼答案

    您可以只使用整数来表示ID。您可以使用Integer.toBinaryString(myId);将它们与文本文件中的位字符串进行比较