好吧基本上我对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;
}
}
答案 0 :(得分:1)
您的循环在空ArrayList上运行,因此size()
方法将返回0.尝试将第一个for循环中的size()
方法更改为您要添加的patientss
个public 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.
}