首先,让我稍微修复一下您的声明:
List<Map<String, List<String>>> listOfMapOfList =
new HashList<Map<String, List<String>>>();
请注意,我只使用过一次具体类()。使用接口非常重要,这样您以后才能更改实现。HashMap
现在你想向列表中添加元素,不是吗?但是该元素是一个映射,因此您必须创建它:
Map<String, List<String>> mapOfList = new HashMap<String, List<String>>();
现在,您要填充地图。幸运的是,您可以使用为您创建列表的实用程序,否则您必须单独创建列表:
mapOfList.put("mykey", Arrays.asList("one", "two", "three"));
好了,现在我们准备将地图添加到列表中:
listOfMapOfList.add(mapOfList);
但:
立即停止创建复杂的集合!想想未来:您可能必须将内部映射更改为其他内容或列表以设置等。这可能会导致您重写代码的重要部分。相反,定义包含数据的类,然后将其添加到单维集合中:
让我们调用你的类(仅作为示例):Student
public Student {
private String firstName;
private String lastName;
private int studentId;
private Colectiuon<String> courseworks = Collections.emtpyList();
//constructors, getters, setters etc
}
现在,您可以定义简单集合:
Collection<Student> students = new ArrayList<Student>();
如果将来你想把你的学生放到地图中,其中键是,那就做吧:studentId
Map<Integer, Student> students = new HashMap<Integer, Student>();