添加新对象后,为什么我的ArrayList为空?

时间:2017-04-28 10:09:01

标签: java arraylist

为什么打印出来时这个ArrayList是空的?

ArrayList<InterviewQuestion> interviewQuestionArrayList = new ArrayList<>();

for (int i = 0; i <interviewQuestionArrayList.size(); i++) {
    interviewQuestionArrayList.add(new InterviewQuestion());
}

System.out.println(interviewQuestionArrayList);

4 个答案:

答案 0 :(得分:3)

你已经创建了arraylist但是在添加之前你正在尝试循环它..最初的大小将为零..

如果您知道有多少面试问题,那么您可以使用该数字循环。

例如:

for (int i = 0; i <numberOfQuestions; i++) {
    interviewQuestionArrayList.add(new InterviewQuestion());
}

numberOfQuestions应该预先设定..

最初,如果您不知道要添加多少次,则可以使用while循环。但是你应该根据某些条件退出

boolean flag = true;
while(flag) {
    interviewQuestionArrayList.add(new InterviewQuestion());
    if(condition) flag = false;
} //something like this

答案 1 :(得分:1)

据我所知,当你进入循环时,你的List是空的。 因此它的size()将返回0并且循环不会添加任何元素。

你的代码基本上是

for (int i = 0; i < 0; i++) {
    interviewQuestionArrayList.add(new InterviewQuestion());
}

答案 2 :(得分:1)

在这里创建一个空列表 - &gt;这意味着大小目前为0

 ArrayList<InterviewQuestion> interviewQuestionArrayList = new ArrayList<>();

永远不会执行以下循环,因为i(现在为0)永远不会&lt;大小(现在0)
这意味着列表中没有添加任何对象

for (int i = 0; i <interviewQuestionArrayList.size(); i++) {
    interviewQuestionArrayList.add(new InterviewQuestion());
}

尝试使用i<10作为for循环中的条件,将10个元素添加到列表中

答案 3 :(得分:0)

如果这2个帖子相互跟随,那么您的列表将永远不会填充:

ArrayList<InterviewQuestion> interviewQuestionArrayList = new ArrayList<>();

for (int i = 0; i <interviewQuestionArrayList.size(); i++) {
    interviewQuestionArrayList.add(new InterviewQuestion());
}

ergo,你有一个空列表可以打印

System.out.println(interviewQuestionArrayList);

您可以使用在声明列表时添加的一些dummyData