Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将数据存储到类的数组列表中,然后从中打印数据_Java_Class_Object_Arraylist - Fatal编程技术网

Java 将数据存储到类的数组列表中,然后从中打印数据

Java 将数据存储到类的数组列表中,然后从中打印数据,java,class,object,arraylist,Java,Class,Object,Arraylist,类文件: public class Student { public String stu_FName; public String stu_LName; public String stu_ID; } com.company.Student@45ee12a7 com.company.Student@330bedb4 com.company.Student@45ee12a7 com.company.Student@330bedb4 这是我为从用户那里获取输入

类文件:

public class Student {

    public String stu_FName;
    public String stu_LName;
    public  String stu_ID;
}
com.company.Student@45ee12a7

com.company.Student@330bedb4

com.company.Student@45ee12a7

com.company.Student@330bedb4
这是我为从用户那里获取输入而编写的代码 公共班机{

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("Enter value for X");
        int x = sc.nextInt();
        ArrayList<Student> stuIDArray = new ArrayList<Student>(4);

        while (x != 0) {
            Student st = new Student();
            System.out.println("Enter First Name");
            st.stu_FName = sc.next();
            stuIDArray.add(st);
            System.out.println("Enter value fo1r X");
            x = sc.nextInt();

        }
但当我尝试用以下任何一种方法打印结果时,它会打印一些代码类型格式

for (int i=0;i<stuIDArray.size();i++){

    System.out.println(stuIDArray.get(i));
}

for (Student a : stuIDArray){
    System.out.println(a);
}

这是因为当您试图打印学生“对象”时,它会打印学生对象的字符串表示形式。 您需要做的是用适当的属性覆盖Student类中的toString方法,比如

@Override
public String toString() {
    return "Student [stu_FName=" + stu_FName + ", stu_LName=" + stu_LName
            + ", stu_ID=" + stu_ID + "]";
}

您必须了解
toString()
方法。当您尝试在对象上使用
System.out.println()
时,其
toString()
方法被调用,并且您已经获得的签名,例如
com.company。Student@330bedb4
是这些方法的默认返回值,如前所述。如果您想要每个字段的适当详细信息,请覆盖
学生
类中的
toString
方法。有关更多信息,请查看您需要指定名称您需要为其获取数据的变量。下面的代码运行良好

for (int i = 0; i < stuIDArray.size(); i++) {
    System.out.println(stuIDArray.get(i).stu_FName);
}

for (Class1 a : stuIDArray) {
    System.out.println(a.stu_FName);
}
for(int i=0;i
ArrayList不必显示
for (int i = 0; i < stuIDArray.size(); i++) {
    System.out.println(stuIDArray.get(i).stu_FName);
}

for (Class1 a : stuIDArray) {
    System.out.println(a.stu_FName);
}