首先,让我稍微更正一下你的声明:
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);
BUT:
立即停止创建复杂的集合!想一想未来:您可能需要将内部映射更改为其他类型,例如列表、集合等。这可能会导致您重写代码的大部分内容。相反,定义一个包含数据的类,然后将其添加到一维集合中:
我们称您的类为学生
(仅作为示例):
public Student {
private String firstName;
private String lastName;
private int studentId;
private Colectiuon<String> courseworks = Collections.emtpyList();
}
现在您可以定义简单的集合:
Collection<Student> students = new ArrayList<Student>();
如果将来您想将学生放到以studentId
为键的映射中,请这样做:
Map<Integer, Student> students = new HashMap<Integer, Student>();
(
实际上应该是<
。 - CodesInChaos