Visualizzazione dei risultati da 1 a 4 su 4

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    4
    Grazie, ho capito dove sbagliavo per il contatore: ora il codice mi sembra corretto.

    public HashMap<String, Integer> lavoratoriGiusti(){

    int [] count=new int[offerte.size()];
    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(off erte.get(i).getSkillIndispensabili())){
    count[i]++;
    offerteLavoratori.put(offerte.get(i).getTitoloAnnu ncio(), count[i]);
    }
    else{
    offerteLavoratori.put(offerte.get(i).getTitoloAnnu ncio(), count[i]);
    }
    }

    }
    return offerteLavoratori;
    }


    Resta il fatto che, quando faccio il debug, non mi entra dentro l'if, e non è un problema di maiuscole, ecc., perchè sono argomenti scritti proprio nello stesso modo. Mi vede il primo elemento, vede che non ci sono corrispondenze ed esce...

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Siadd Visualizza il messaggio
    Grazie, ho capito dove sbagliavo per il contatore: ora il codice mi sembra corretto.
    Molto contorto ..... quando dicevo "ragionare diversamente" intendevo proprio ragionare (meglio) in maniera differente.

    Visto che il conteggio è del numero di lavoratori "appropriati" PER (ciascuna) OFFERTA, allora pensa: potresti migliorare l'algoritmo se il ciclo più esterno fosse quello delle offerte??

    Quote Originariamente inviata da Siadd Visualizza il messaggio
    Resta il fatto che, quando faccio il debug, non mi entra dentro l'if, e non è un problema di maiuscole, ecc., perchè sono argomenti scritti proprio nello stesso modo. Mi vede il primo elemento, vede che non ci sono corrispondenze ed esce...
    Verifica bene (in debugging) cosa danno getSkills() e getSkillIndispensabili(). Cioè osservando cosa danno, valuta se ti aspetti che entri o no nel if.

    Nota che il concetto del containsAll è quello giusto, es.:

    codice:
    List<String> skills = Arrays.asList("C++", "Java", "C#");
    
    List<String> skillsReq1 = Arrays.asList("C++", "C#");
    List<String> skillsReq2 = Arrays.asList("C++", "C#", "Perl");
    
    System.out.println(skills.containsAll(skillsReq1));     // true
    System.out.println(skills.containsAll(skillsReq2));     // false
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.