Buongiorno a tutti,
vorrei chiedere una spiegazione che potrebbe sembrare una banalità, ma se qualcuno mi spiegasse l'errore che commetto col codice potrei vederci più chiaro.
La situazione è questa: ho due ArrayList di stringhe, una contiene tutte le skills dei lavoratori in cerca di un lavoro, mentre la seconda arraylist contiene tutte le skills necessarie per le varie offerte di lavoro. A loro volta, entrambe sono contenute rispettivamente nell'arrayList lavoratori e nell'ArrayList offerte (in modo che capiate bene il codice che posterò). Voglio che, date le offerte di lavoro, per cui sono richieste determinate skills, il codice mi restituisca il numero di lavoratori che posseggono quelle skills. Per quetso voglio costruire una mappa che abbia come chiave il titolo dell'offerta di lavoro e come valore il numero di lavoratori idonei(che posseggono gli skills richiesti).
Ecco il mio codice:
codice:
public HashMap<String, Integer> lavoratoriGiusti(){
int count=0;
HashMap<String,Integer> offerteLavoratori=new HashMap<>();
for(int j=0;j<lavoratori.size();j++){
for(int i=0; i<offerte.size();i++){
if((lavoratori.get(j).getSkills()).containsAll(offerte.get(i).getSkillIndispensabili())){
count++;
offerteLavoratori.put(offerte.get(i).getTitoloAnnuncio(), count);
}
else{
System.out.println("non ci sono lavoratori adeguati");
}
}
}
return offerteLavoratori;
}
Non mi da errore, ma ciò che vedo facendo il debug, è che non entra affatto dentro lif, questo perchè è come se vedesse solo il primo elemento delle rispettive arraylist, senza scorrerlo, e ovviamente alla prima posizione non ci sono lavoratori con skills richieste nella prima offerta.
Potete aiutarmi a capire dove sbaglio?
Grazie in anticipo.