大量配置中的我有一個數據類型(讓我們稱之爲數據),其包含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