Java 打印ArrayList multipe值时,仅显示->';[]和#x27;
我在Java中显示Java 打印ArrayList multipe值时,仅显示->';[]和#x27;,java,arraylist,command-line,Java,Arraylist,Command Line,我在Java中显示ArrayList的元素时遇到问题。当从视图调用它时,返回ArrayList,返回包含虚拟值表单的bmiAnalyzer类。它显示了 [] [] 当java文件运行时 Views.java Switch(choice[0]){ case 1: //Option 1 to display the data fo subject of given subject id. ArrayList<Records> arraylist
ArrayList
的元素时遇到问题。当从视图调用它时,返回ArrayList
,返回包含虚拟值表单的bmiAnalyzer类。它显示了[] []
当java文件运行时
Switch(choice[0]){
case 1:
//Option 1 to display the data fo subject of given subject id.
ArrayList<Records> arraylist = analyzier.find(choice[1]);
System.out.println(ArrayList);
Break;
Case 2:
//Option 2 to display the data fo subject from the range given of BMI.
ArrayList<Records> arraylistList = analyzier.find(Double.parseDouble(choice[1]),Double.parseDouble(choice[2]));
for (int i = 0; i < arraylistList.size(); i++){
System.out.println((arraylistList.get(i)).toString());
}
Break;
default:
System.out.println("wrong input");
}
开关(选项[0]){
案例1:
//选项1显示给定主题id的主题数据。
ArrayList ArrayList=analyzer.find(选项[1]);
System.out.println(ArrayList);
打破
案例2:
//选项2显示给定BMI范围内的受试者数据。
ArrayList arraylistList=analyzier.find(Double.parseDouble(选项[1]),Double.parseDouble(选项[2]);
对于(int i=0;i
public class BMIAnalyzier {
public Records find(String sid) {
System.out.println(new Records(sid, 0.0, 0.0, 0.0, "none"));
return new Records(sid, 0.0, 0.0, 0.0, "none");
}
public ArrayList<Records> find(double bmi1, double bmi2) {
ArrayList<Records> alr = new ArrayList<>();
alr.add(new Records("S01", 0.0, 0.0, 0.0, "none"));
alr.add(new Records("S02", 0.0, 0.0, 0.0, "none"));
return alr;
}
}
公共类BMI分析器{
公共记录查找(字符串sid){
System.out.println(新记录(sid,0.0,0.0,0.0,“无”);
返回新记录(sid,0.0,0.0,0.0,“无”);
}
公共阵列列表查找(双倍bmi1,双倍bmi2){
ArrayList alr=新的ArrayList();
alr.add(新记录(“S01”,0.0,0.0,0.0,“无”);
alr.add(新记录(“S02”,0.0,0.0,0.0,“无”);
返回alr;
}
}
public class Records extends ArrayList<Records> {
private String SubjectId;
private Double height;
private Double width;
private Double bmianalyzier;
private String categories;
public ArrayList <Records> list =new ArrayList<>();
public Records(String sid, Double h, Double w, Double bmi, String c) {
}
//getter ans setter methods.
}
公共类记录扩展了ArrayList{
私有字符串主语;
私人双高;
私人双宽度;
私人双分析员;
私有字符串类别;
public ArrayList list=new ArrayList();
公共记录(字符串sid、双h、双w、双bmi、字符串c){
}
//getter和setter方法。
}
主要的秘密在于您拥有
记录
类扩展数组列表
。我不知道您为什么要这样做,但是在这样的情况下,您继承了ArrayList
的toString()
方法,该方法是呈现[]
的方法,因为数组是空的。您需要为记录
类实现toString()
String toString() {
return subjectId + " " + height + " " + width + " " + bmianalyzier + " " + categories;
}
我想你是java新手吧。你需要先了解基本知识。例如,在您的示例中,ArrayList是一个用于保存相同类型的多个值的集合。使用Records类,您可以扩展此处不需要的集合 公共类记录扩展了ArrayList
public Records(String sid, Double h, Double w, Double bmi, String c) {
this.SubjectId = sid;
// set other values as well
}
并且,find(stringsid)返回记录对象
ArrayList < Records > arraylist = analyzier.find(choice[1]);
要打印记录对象的值,请按照@Niklas的建议执行来吧,如果您不想费心格式化代码并使问题可读,为什么您认为我们可以费心回答/帮助您?显然它是空的。您的中断和切换命令如何工作……我想知道??
Records record = analyzier.find(choice[1]);