如何打印数组列表中的对象的值

时间:2013-12-01 17:55:57

标签: java object arraylist println

我已经从方法创建了一个对象并将该对象放入数组列表中,现在我想在数组列表中打印对象的值,当我使用System.out.println(objectname)时,我得到了存储空间对象的位置而不是值

ArrayList<Student> students = new ArrayList<Student>();

         Student tomas = new Student("tomas", "jordan");
            students.add(tomas);
            Student get = students.get(0);  
            System.out.println(get);

我得到的结果是学生@ 789ddfa3我想要的结果是tomas,jordan

这是下面的学生班级

公共班学生{

public String fname;
public String lname;

//constructor
public Student(String fn,String ln){

    fname = fn;
    lname = ln;


}
}

3 个答案:

答案 0 :(得分:4)

来自this

  

你应该总是考虑覆盖你的toString()方法   类。

     

Object的toString()方法返回一个String表示形式   对象,这对调试非常有用。字符串表示   对象完全取决于对象,这就是你需要的原因   覆盖类中的toString()。

因为你没有覆盖toString()类中的Object方法,所以你得到了这样的输出:

getClass().getName() + '@' + Integer.toHexString(hashCode())

Student课程中覆盖它。

@Override
public String toString(){
   return fname+" "+lname;
}

答案 1 :(得分:0)

toString()覆盖为

public String toString() {

return fname + lname;  
}

答案 2 :(得分:0)

Override the Object's class method toString()

import java.util.ArrayList;

public class IDInput {
public static void main(String[] args) {
    ArrayList<Student> students=new ArrayList<Student>();
    students.add(new Student("Om","Shankar"));
    System.out.println(students.get(0));
 }
}




 class Student {
    private final String mName;
    private final String lName;


    public Student(String inName, String inID) {
        mName = inName;
        lName = inID;

    }


    public String Called() {
        return (mName);
    }
    @Override
    public String toString() {

        return mName+" "+lName  ;
    }
}`enter code here`