[英]ArrayIndexOutOfBounds Exception thrown
public Pasient[] finnPasient(String dato)
{
int j = 0;
Pasient[] p = new Pasient[j];
for(int i = 0; i < pasienter.length; i++)
{
if(pasienter[i] != null && pasienter[i].getFødselsdato().equals(dato))
{
p[j] = pasienter[i];
j++;
}
}
if(j == 0)
return null;
else
return p;
}
那是我的方法。 我想我知道出了什么問題,但是我不確定如何解決。 我認為在循環運行時arraylength不會更新。 對於我的測試,Pasienter.length始終為100。 問我是否需要更多信息來回復,謝謝
int j = 0;
Pasient[] p = new Pasient[j];
j
是0, p
根本沒有任何元素,因此索引為0的第一個元素超出范圍,這很可能在以下行發生:
p[j] = pasienter[i];
↑
當您編寫j++
,這不會擴大您已經創建的數組。 請記住,數組的大小不能更改。
由於您不知道該數組應持續多長時間,因此我建議您閱讀ArrayList
並進行以下操作:
ArrayList<Pasient> p = new ArrayList<>();
接着,
p.add(pasienter[i]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.