Если я хочу создать список списка строк в Java, например, вот логическое представление (для чего я имею в виду список списков строк), и я нахожу, что второй метод ниже не компилирует pass? Я запутался, так как я считаю, что ArrayList является реализацией интерфейса List, что не так со вторым методом?
Также проконсультируйтесь с экспертом о том, что является правильным способом создания списка списка строк (если я хочу использовать тип интерфейса List
для типа переменной, отличного от использования конкретного типа реализации ArrayList
)?
[
["hit","hot","dot","dog","cog"],
["hit","hot","lot","log","cog"]
]
Исходный код в Java,
List<List<String>> arrOfStr = new ArrayList<List<String>>(); // first method works
List<List<String>> arrOfStr = new ArrayList<ArrayList<String>>(); // second method does not work -- it cannot compile
Edit
Я думаю, что мой вопрос отличается от этого вопроса (Является ли List <Dog> подклассом List <Animal> ? Почему не являются генетическими генериками Java неявно полиморфными?) поскольку я спрашиваю контейнер контейнера, но если я прочитаю его неправильно, пожалуйста, не стесняйтесь меня исправлять.