大量配置中的我有一个数据类型(让我们称之为数据),其包含2条信息:存储在Java
int config
byte weight
此数据类型是一个系列的32个布尔值的转换。我必须对这些32位布尔变量进行更改,将其转换回此数据类型并存储它。 问题是我想只存储唯一的条目,消除任何重复。问题是这种数据类型存在2^33个可能的配置。
我已经试过这样的事情:
static class searchedconfigs {
Data[] searchedconfigs;
int position;
public searchedconfigs() {
searchedconfigs = new Data[150000];
}
public void initiateposition() {
position = 0;
}
public boolean searchfield(Data Key, int entries) {
boolean exists = false;
for (int i = 0; i <= entries; i++) {
if (searchedconfigs[i] == Key) {
System.out.println("break");
exists = true;
break;
}
}
return exists;
}
public void add(Data config, int position) {
searchedconfigs[position] = config;
}
public int getPosition() {
return position;
}
public void storePosition() {
position++;
}
}
位置开始做,增加做是为了让我每次搜索只阵中占据的位置。我的问题是,你可以看到该阵列只有150万的大小。我需要更大。然而,即使分配一个最大大小的int(我需要很长的时间来创建一个我实际需要的大小的数组)也会导致内存不足错误。此外,我的searchfield函数似乎没有正确比较存储在此位置的密钥和配置。
任何人都可以告诉我,我可以做些什么来解决这些错误或提出一种不同的方法来存储这些数据。
是每个“数据”的位置都很重要,还是只需要测试存在/成员资格? – JesseTG
没有位置是没有意义的 –
'HashSet'就是这样。 – JesseTG