2017-02-10 103 views
-1

我正在用javafx編寫一個程序,用於讀取2015年溫哥華房產稅報告中的數據並將其可視化。它採用csv格式。如何計算特定時間間隔內的物品數量?

我想算性質的間隔時間內,通過$ 25,000個定數。例如,最低價值爲10萬美元,從那裏增加25000美元。整個數據集的最大財產價值約爲10億美元。我排除了開關和ifs,因爲我認爲這需要很長時間才能完成。

有沒有在Java中較短的方法可以做到這一點?我使用Java 8

+0

開始通過這個http://stackoverflow.com/help/how-to-ask – 2017-02-10 18:16:14

+1

你的問題還不是很清楚,但所有你需要的是一個Map < Integer,Integer>,其中鍵是間隔的下限(100,000,125,000,150,000等),並且該值是該間隔的計數。對於每個屬性,刪除它的模值(假設157,000)除以25,000(從而導致下限150,000),並增加相應的計數。 –

+0

@JBNizet感謝您的回覆?你能告訴我什麼不清楚嗎?我想在將來避免這個錯誤。在當前的土地價值欄中,大約有20萬行數據。我想在一定的時間間隔內計算屬性的數量。我認爲使用ifs和switch會很耗時,所以我想知道是否有更有效的方式搜索這些間隔。 –

回答

1

您可以創建一個數組(或者更好的是,一個地圖),它保存每個房子的計數。

例如,使用一個數組:

int[] houseArray = new int[1+((max_house_value-100000)/25000)]; 
for (int price : houses_price_array){ 
    if (price < 100000){ 
    houseArray[0] += 1; 
    } else { 
    houseArray[((price-100000)/25000)+1] += 1;//int rounds down, need +1 
    } 
} 
相關問題