我正在开发一个医疗数据库程序,它使用我使用行创建的哈希表
ArrayList<Integer[]> hashTable = new ArrayList<>(TABLE_SIZE);
TABLE_SIZE设置为57,我希望基本上有一个ArrayList
个57(或更少)数组,对应于从症状生成的hashCode
。我的最终输出将是
含有流感的文件是1,4,10,27
我知道将TABLE_SIZE放在/离开现在将导致它只包含57而不是设置实际大小。我如何在像这样的容器中设置尺寸?
我有限制,不允许我使用像java.util.HashTable
之类的东西。我得到的唯一自由是我可以使用ArrayList
s。
任何帮助都很好......帮助。
答案 0 :(得分:0)
您需要将TABLE_SIZE
数组添加到hashTable
:
for (int i = 0; i < TABLE_SIZE; ++i) {
hashTable.add(new Integer[0]);
}
之后,hashTable.size() == 57
。但是,请注意,您需要提前选择数组的大小;你无法动态调整它们的大小。但是,您可以将hashTable
更改为列表列表:
ArrayList<ArrayList<Integer>> hashTable = new ArrayList<>(TABLE_SIZE);
for (int i = 0; i < TABLE_SIZE; ++i) {
hashTable.add(new ArrayList<>());
}
答案 1 :(得分:0)
我知道将TABLE_SIZE放在/离开现在将导致它只包含57而不是设置实际大小。
是什么给你留下这样的印象?实际上,The constructor you are calling将以一种能够容纳57个项目的方式初始化ArrayList
,而不必增加其内部数组的大小。
也就是说,当您使用ArrayList时,通常最好忽略可能存在或不存在的项目数量,只需通过{{添加您想要的项目即可。 1}}方法。它会根据需要调整自己的大小。