我想寫一個接受房屋數組和價格priceLimit的方法。我想要該方法爲價格低於或等於priceLimit的房屋返回一組房屋。我想通過數據來確定返回數組的大小。問題是我無法弄清楚如何將房屋陣列中的House對象添加到lowPriceHouses數組中。我得到的錯誤是:java方法接受對象數組,然後double返回一個對象數組
Exception in thread "main" java.lang.NullPointerException at
prob3.HouseTester.getLowPriced(HouseTester.java:76) at
prob3.HouseTester.main(HouseTester.java:52)
代碼
private static House[] getLowPriced(House[] houses, double priceLimit)
{
House[] lowPriceHouses = null;
int index = 0;
for (int i = 0; i <= houses.length; i++)
{
double prices = houses[i].getPrice();
if (prices <= priceLimit)
lowPriceHouses[index++] = houses[i];
}
return lowPriceHouses;
}
當你指定ArrayList爲什麼你要定義長度?我的意思是'lowPriceHouses'不可能小於原始數組?那不會有空的元素嗎? –
@DimitarDimitrov'ArrayList'是一個動態數組,也就是說,它可以包含更多或更少的項目,當你需要它就會成長。但是爲此付出代價。隨着名單增長超出目前的「限制」,它需要調整大小。這是通過在緩衝區中添加一些「空白」空間來完成的。但是這需要時間和記憶。相反,我們提供了我們可能具有的值的「猜測」。這使得它更快。由於我們知道我們永遠不會比'houses.length'項目多,因此使用此值作爲初始值是安全的。 – MadProgrammer
我明白了,所以這不會分配數組,它只會設置一個限制? –