首先,让我稍微修正一下您的声明:
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>();
如果将来您想将您的学生放入 key 为 的地图中studentId
,请执行以下操作:
Map<Integer, Student> students = new HashMap<Integer, Student>();