Java 字符串数组上的简单循环未停止

Java 字符串数组上的简单循环未停止,java,list,loops,for-loop,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); } 我有以下问题: 尽管我在列表中只有三项

作为Java新手,下面的代码让我感到困惑。我正在尝试基于列表进行一个简单的循环

List memberships = getMembership(username);
for( Iterator<Integer> single = memberships.iterator(); single.hasNext(); ) 
{
    System.out.println(print_the_current_string_in_list);
} 
我有以下问题:

尽管我在列表中只有三项,但循环从未停止过。为什么会这样? 如何在列表中输出当前字符串?
尝试高级for循环,如下所示:

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

希望您的列表是字符串类型而不是整数,所以它应该是

List<String> memberships = getMembership(username);
另一种方式:

for(int i = 0; i < memberships.size(); i++) {
   System.out.println(memberships.get(i));
}
您可以将迭代器与while循环一起使用,而不是使用for循环


您需要使用迭代器中的下一个方法实际迭代成员:


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

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

您尚未遍历该列表。请使用下一个方法。这就是它进入无限循环的原因

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

这似乎奏效了!实际上,我已经尝试了forString single:memberships,但这不起作用,因为我没有在成员资格列表中指定类型。
Iterator<String> iterator = membership.iterator();
while(iterator.hasNext()) {
    System.out.println(iterator.next());
}
for (Iterator<Integer> single = memberships.iterator (); single.hasNext (); ) {
  Integer next = single.next ();
  System.out.println (next);
}
for (Integer current : memberships)
  System.out.println (current);
List<String> memberships = getMembership(username);
for( String m : memberships ) 
{
    System.out.println(m);
}
 for( Iterator<Integer> single = memberships.iterator(); single.hasNext();{
        System.out.println( single.next());
    }