想知道为什么我的ArrayList不会打印?

时间:2015-11-03 04:47:53

标签: java arrays arraylist

所以我试图打印我的ArrayList,AList,它是一个类型为Question的ArrayList(我自己创建的一个类),我使用的是toString方法但是它并没有。似乎工作。它仍在打印数组地址。

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

get(i)获取ArrayList中的Question对象。 我已经尝试过了:

System.out.println(AList.toString());

也是。它似乎永远不会起作用。 不确定我做错了什么。 不确定这是否太模糊。我对Java很新。

非常感谢!!

此外,似乎我的编译器告诉我,我无法将参数传递给toString方法。 :(

4 个答案:

答案 0 :(得分:0)

1. AList的大小是否为零?

2. toString()如果在overridetoString() Object List,则会打印出类名称。

答案 1 :(得分:0)

默认情况下,调用toString函数时java中的所有对象都返回十六进制值,请阅读http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString()

如果你想从toString获得一些有意义的值,你必须像下面的

一样覆盖它
Class Question {
    String text;
    ...
    @Override
     public String toString() { 
         return this.text;
      } 
}

答案 2 :(得分:0)

您可以像下面这样写。

首先,您需要检查AList.size()。

if(AList.size() == 0){
 System.out.println("AList.size() == 0");

}else{

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

您可以覆盖问题对象中的toString()方法。

public String toString() {
  return "Question: " + questionname+ ", and Question Answer" + questionanswer;
}

希望它会对你有所帮助。

答案 3 :(得分:0)

你应该使用泛型:

ArrayList<Question> Alist = new ArrayList<>();

现在当你调用Alist.get(i)时,它会返回问题对象并覆盖用户KishuDroid告诉的下面的方法

public String toString()

尝试打印任何对象时会调用此方法。因此,在此方法中,您应该在调用

时返回要打印的字符串
System.out.println(Alist.get(i));

Alist.toString()将打印Alist对象的地址。