簡體   English   中英

引發ArrayIndexOutOfBounds異常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM