簡體   English   中英

For循環不適用於ArrayList

[英]For loop isn't working for ArrayList

好的,基本上我是ArrayList的新手,我必須使用它來制作一個獲取患者ID的程序,然后使用對象和for循環將其顯示在屏幕上。 我確實制作了程序,但循環未執行。 這是我的程序:

import java.util.*;
import java.util.ArrayList;
import java.util.Scanner;

public class patient$ {
    public static void main(String[] args) {
        ArrayList<patientss> patient1 = new ArrayList<patientss>();
        Scanner src = new Scanner(System.in);
        int id, i, num;
        String name;
        int ages;
        System.out.println(" j");
        for (i = 0; i < patient1.size(); i++) {
            patientss xx = new patientss();
            System.out.println("Enter the patient's ID ");
            id = src.nextInt();
            xx.setId(id);
            patient1.add(xx);
        }
        patientss tt = new patientss();
        for (i = 0; i < patient1.size(); i++) {
            tt = patient1.get(i);
            System.out.println(tt.getId());
        }
    }
}

這是我的patientss課:

package samplee.java;
public class patientss {
    int id;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}

您的循環在一個空的ArrayList上運行,因此size()方法將返回0。嘗試將第一個for循環中的size()方法更改為要添加的許多patientss

您的第一個循環是遍歷一個空的ArrayList。

由於此循環的重點似乎是要向列表中添加東西,因此迭代次數應由要添加到其中的東西(而不是已經包含多少東西)控制。 例如,只要patient1.size()<N ,循環就可以繼續,其中N是您要添加的項目數。

這是一個解決方案。 用我的代碼替換第一個循環。

Boolean leave = false;
while (!leave) {
    patientss xx = new patientss();
    System.out.println("Enter the patient's ID ");
    System.out.println("-1 to finish entering");
    id = src.nextInt();
    if (id != -1) {
        xx.setId(id);
        patient1.add(xx);
    } else { leave = true; } //Escape the while loop.
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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