In primo luogo, mi permetta di risolvere un po 'la sua dichiarazione:
List<Map<String, List<String>>> listOfMapOfList =
new HashList<Map<String, List<String>>>();
Si prega di fare attenzione che ho usato la classe di calcestruzzo (HashMap
) solo una volta. È importante utilizzare l'interfaccia in cui è possibile essere in grado di modificare l'implementazione in un secondo momento.
Ora si desidera aggiungere un elemento all'elenco, non è vero? Ma l'elemento è una mappa, in modo da avere per crearlo:
Map<String, List<String>> mapOfList = new HashMap<String, List<String>>();
Ora si desidera popolare la mappa. Fortunatamente è possibile utilizzare utility che crea liste per voi, altrimenti si deve creare lista separatamente:
mapOfList.put("mykey", Arrays.asList("one", "two", "three"));
OK, ora siamo pronti per aggiungere la mappa nella lista:
listOfMapOfList.add(mapOfList);
MA:
Smettere di creare raccolte complicate in questo momento! Pensa al futuro: probabilmente dovrai cambiare la mappa interna in qualcos'altro o elencare per impostare ecc. Questo probabilmente ti farà riscrivere parti significative del tuo codice.Invece di definire classe che contiene i propri dati e quindi aggiungere a uno-dimensionale collezione:
Chiamiamo la classe Student
(come esempio):
public Student {
private String firstName;
private String lastName;
private int studentId;
private Colectiuon<String> courseworks = Collections.emtpyList();
//constructors, getters, setters etc
}
Ora è possibile definire semplice raccolta:
Collection<Student> students = new ArrayList<Student>();
Se in futuro si desidera mettere gli studenti in mappa dove è la chiave studentId
, farlo:
Map<Integer, Student> students = new HashMap<Integer, Student>();
vuoi dire che hai bisogno di un elenco di mappe di questo modulo? –
Presumo che tu stia usando java e che la maggior parte dei tuoi '(' dovrebbe essere ''. ' – CodesInChaos
Sì..its java .. Poiché' <'non è stato visualizzato correttamente, ho usato' (' – user2376600