![](/img/trans.png)
[英]Nested loop to count duplicates in an ArrayList isn't working properly
[英]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.