For循环不适用于ArrayList

时间:2016-04-12 16:29:07

标签: java arraylist

好吧基本上我对ArrayList有点新鲜,我必须用它来制作一个程序来获取一些患者ID,然后使用对象和循环在屏幕上显示它。我确实制作了程序,但我的循环没有执行。 这是我的计划:

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;
    }
}

3 个答案:

答案 0 :(得分:1)

您的循环在空ArrayList上运行,因此size()方法将返回0.尝试将第一个for循环中的size()方法更改为您要添加的patientsspublic function hasAccess($requiredLevel, $levels, $myLevel) { // Check if $myLevel matches $requiredLevel if ($requiredLevel === $myLevel) { return true; } // Iterate through all levels under $myLevel foreach ($levels[$myLevel] as $level) { // If any of those levels has access, return true if ($this->hasAccess($requiredLevel, $levels, $level)) { return true; } } return false; }

答案 1 :(得分:1)

你的第一个循环是迭代一个空的ArrayList。

由于此循环的要点似乎是事物添加到该列表中,因此迭代次数应该由您想要添加多少项来控制,而不是已经有多少在里面。例如,循环可以继续N,其中__init__是您要添加的项目数。

答案 2 :(得分:0)

这是一个解决方案。用我的代码替换第一个循环。

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.
}