迭代地图列表时出现无限循环问题

use*_*629 -1 java

我的下面的代码导致无限循环.我加入3 mapsArrayList并试图迭代listMaps.但我不知道造成无限循环的原因.我知道我可能会犯一些愚蠢的错误,但我无法理解.有人可以帮忙吗?

package paddy.test;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

public class Maptest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Map < String, Integer > m = new HashMap<String, Integer>();

        m.put("a", 1);
        m.put("b", 1);
        m.put("c", 1);
        m.put("d", 1);
        m.put("e", 1);

        Map < String, Integer > m1 = new HashMap<String, Integer>();

        m1.put("a", 1);
        m1.put("b", 1);
        m1.put("c", 1);
        m1.put("d", 1);
        m1.put("e", 1);

        Map < String, Integer > m2 = new HashMap<String, Integer>();

        m2.put("a", 1);
        m2.put("b", 1);
        m2.put("c", 1);
        m2.put("d", 1);
        m2.put("e", 1);

        List<Map<String, Integer>> lm = new ArrayList<>();

        lm.add(m);
        lm.add(m1);
        lm.add(m2);

        Iterator<Map<String, Integer>> lmItr = lm.iterator();

        while (lmItr.hasNext())
        {
            System.out.println(1);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Ell*_*sch 6

您没有使用迭代器,而是打印常量.更改

while (lmItr.hasNext())
{
    System.out.println(1);
}
Run Code Online (Sandbox Code Playgroud)

while (lmItr.hasNext())
{
    System.out.println(lmItr.next());
}
Run Code Online (Sandbox Code Playgroud)