Итерируя по LinkedList, но получая ошибку «для каждого не применимо к типу выражения», что не так? - PullRequest
0 голосов
/ 02 февраля 2019

Я в настоящее время реализую 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 голосов
/ 02 февраля 2019

Я импортировал java.util.LinkedList с import java.util.*; Что не работает в этом случае, по-видимому.Пришлось импортировать его напрямую с import java.util.LinkedList;

...