Non puoi realizzare una struttura tipo:
?codice:Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>()
Ad ogni Stringa è associata una serie (lista di stringhe) di tag.
Un primo metodo iterativo per stampare la stringa in base al tag potrebbe essere..
Solo che questo codice essendo formato da 2 cicli annidati nel peggiore dei casi ha una complessitàcodice:public void stampaStringaBySubTag(String subTag) { // iteratore per le chiavi int count = 0; Iterator<String> it = mappa.keySet().iterator(); while(it.hasNext()) { String key = it.next(); // valore (lista di tag) associato alla chiave ArrayList<String> value = mappa.get(key); for(int i = 0; i < value.size(); i++) { if(value.get(i).startsWith(subTag)) { count++; System.out.println(key); } } } if(count == 0) { System.out.println("missing"); } }
O(n2).
Avendo interpretato i tag come i valori e le stringhe come chiavi, il metodo di aggiunta va a sostituire i tag della chiave specificata.

Rispondi quotando
