Se getSkills() dà un (Array)List<String> e getSkillIndispensabili() dà un (Array)List<String>, il senso e approccio è quello corretto.
Chiaramente le stringhe dovranno essere nella stessa forma. Se nella prima lista c'è un "Programmatore", nella seconda ci deve essere "Programmatore" ... non "programmatore", altrimenti non ti corrisponde un bel niente.
Questo invece è sbagliato. A te serve un "conteggio" per ciascun titolo (di annuncio) mentre ora stai usando un contatore unico.
Devi ragionare diversamente.![]()