简单循环不在String Array上停止

时间:2015-01-29 19:41:57

标签: java list loops for-loop

对Java不熟悉,以下代码让我感到困惑。我试图根据列表进行简单的循环。

List memberships = getMembership(username);
for( Iterator<Integer> single = memberships.iterator(); single.hasNext(); ) 
{
    System.out.println(print_the_current_string_in_list);
} 

我有以下问题:

  • 循环永远不会停止,尽管我在列表中只有三个项目。这是为什么?
  • 如何输出列表中的当前字符串?

5 个答案:

答案 0 :(得分:5)

希望您的列表String类型而不是Integer,所以它应该是

List<String> memberships = getMembership(username);

有多种方法可以循环数据,例如:

for(String single : memberships) {
    System.out.println(single);
}

另一种方式:

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

使用Iterator

for(Iterator<String> iterator = membership.iterator(); iterator.hasNext();) {
    System.out.println(iterator.next());
}

您可以使用for loop Iterator

而不是使用while loop
Iterator<String> iterator = membership.iterator();
while(iterator.hasNext()) {
    System.out.println(iterator.next());
}

答案 1 :(得分:2)

尝试使用高级for循环,如下所示:

for(String membership : memberships)
    System.out.println(membership);

答案 2 :(得分:2)

您可以使用foreach语句,该语句使用列表已经实现的迭代器。 您还应该在List声明中指定列表将包含的元素的类型,如下所示:

List<String> memberships = getMembership(username);
for( String m : memberships ) 
{
    System.out.println(m);
}

答案 3 :(得分:1)

您需要使用next()中的Iterator方法实际迭代成员:

for (Iterator<Integer> single = memberships.iterator (); single.hasNext (); ) {
  Integer next = single.next ();
  System.out.println (next);
}

此外,您可以为每个构造使用new:

for (Integer current : memberships)
  System.out.println (current);

答案 4 :(得分:1)

你还没有遍历列表。使用next()方法。说明为什么它会进入无限循环。

 for( Iterator<Integer> single = memberships.iterator(); single.hasNext();{
        System.out.println( single.next());
    }