首先,讓我解決一點點你的宣言:
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"));
OK,現在我們已經準備好地圖添加到列表中:
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>();
您的意思是你需要一個這種形式的地圖列表? – 2013-05-13 06:49:31
我假設你正在使用java,並且你的大多數'('實際上應該是'<'。 – CodesInChaos 2013-05-13 06:52:04
Yeah..its java ..既然'<'顯示不正確,我用'(' – user2376600 2013-05-13 06:58:56