通过LinkedList进行迭代,但出现错误“ for-each不适用于表达式类型”,这是怎么回事?

时间:2019-02-02 04:41:38

标签: java foreach linked-list trie

我目前正在实现特里,这是到目前为止的代码:

1     public class DictionaryDLB{
2 
3         private Node root = new Node();
4 
5         private class Node {
6             private Character val;
7             private LinkedList<Node> next = new LinkedList<Node>();
8         }
9 
10        public void put(String key)
11        { root = put(root, key, 0); }
12
13        private Node put(Node x, String key, int d){
14            if (x == null) x = new Node();
15            if (d == key.length()) { x.val = '$'; return x; }
16            char c = key.charAt(d);
17            for(Node item : x.next){
18                if(c == item.val){
19                    item = put(item, key, d+1);
20                }
21            }
22            return x;
23        }
24    }

但是,当我尝试编译时,我在专用put()方法中收到此错误:

DictionaryDLB.java:17: error: for-each not applicable to expression type for(Node item : (x.next)){ ^ required: array or java.lang.Iterable found: LinkedList<Node> 1 error

我在线查找了各种示例,这似乎应该可行,因为java.util.LinkedList确实实现了java.lang.Iterable。但是,事实并非如此,我为此感到困惑。任何帮助或建议,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

我正在使用java.util.LinkedList导入import java.util.*;,显然在这种情况下不起作用。必须使用import java.util.LinkedList;

直接导入