[RISOLTO]Esercizio java università

di il
9 risposte

[RISOLTO]Esercizio java università

Buonasera,
per l' università ho un esercizio da fare. Help me!!
Dato un file contenente un elenco di città con relativi numero abitanti
(Es. Milano 1.000.000)
1.Trovare la città con il numero maggiore di Abitanti e stamparla
2. Trovare la città con il nome più lungo e stamparla

Help meeeee

9 Risposte

  • Re: [RISOLTO]Esercizio java università

    eso93 ha scritto:


    Dato un file contenente un elenco di città con relativi numero abitanti
    (Es. Milano 1.000.000)
    1.Trovare la città con il numero maggiore di Abitanti e stamparla
    2. Trovare la città con il nome più lungo e stamparla
    Allora:

    1) Innanzitutto definisci una classe che contiene le informazioni di: nome citta e numero abitanti.
    Nella classe le solite cose: campi private, metodi "accessori" getter/setter public, un costruttore che riceve nome/numero (se necessario). Altro eventuale es. toString, ecc... Attenzione: nient'altro, niente I/O da file o dall'utente.

    2) In una classe specifica dell'esercizio (non è quella detta al punto 1 !) fai un metodo che dato un nome di file, esegue la lettura e poi restituisce un List<XYZ> (XYZ il nome che scegli per la classe al punto 1). Chiaramente dovrai istanziare un es. ArrayList<XYZ>, leggere il file riga per riga, estrarre e separare le informazioni, creare gli oggetti XYZ e popolare la lista.

    3) Nel main della classe dell'esercizio userai quel metodo di lettura ed otterrai una lista degli oggetti ciascuno con nome città/numero abitanti. Per trovare le informazioni richieste ci sono diverse strade:
    a) Fai tu una ricerca lineare e man mano ti tieni l'oggetto che soddisfa meglio il criterio richiesto. Es. per il numero maggiore di abitanti tieni in una variabile il riferimento all'oggetto che man mano supera il numero che avevi nell'oggetto in precedenza.
    b) Ordini la lista usando una apposita implementazione di Comparator e poi prendi il primo (o ultimo a seconda del senso) elemento. Tra l'altro, in alternativa, la classe java.util.Collections ha i comodi metodi max/min che si basano su Comparable o Comparator. Ma bisogna vedere se puoi usarli.

    Se usare a) o b) dipende dalle richieste e dalle tue conoscenze.

    Domanda: cosa deve succedere se più città dovessero avere lo stesso numero di abitanti o nome con la stessa lunghezza?

    P.S. ti ho dato indicazioni abbastanza precise. Prova a ragionarci e quindi a scrivere TU il codice. Per dubbi specifici, chiedi.
  • Re: [RISOLTO]Esercizio java università

    Si puo' fare tutto anche senza classi/getter/setter, ma semplicemente scandendo una riga alla volta, estrarre nome e popolazione delle citta' e giocare con la lunghezza delle stringhe.
    Per i numeri, bisogna fare qualche controllo in piu'.
    10 righe? Forse 20
  • Re: [RISOLTO]Esercizio java università

    migliorabile ha scritto:


    Si puo' fare tutto anche senza classi/getter/setter
    Beh ... sì, certo.
  • Re: [RISOLTO]Esercizio java università

    Per trovare la città con più caratteri ho pensato così
    String parolaLunga=arrayParole[0];
    for(int i=1;i<arrayParole.length;i++){
    if(arrayParole.length() > parolaLunga.length() ) {
    parolaLunga=arrayParole;
    }
    }

    Il problema che mi da l' ultima città e NON la più lunga

    es. Milano Vercelli Lodi Crotone Alessandria Roma ( mi restituisce Roma
  • Re: [RISOLTO]Esercizio java università

    eso93 ha scritto:


    Per trovare la città con più caratteri ho pensato così
    Ed è tecnicamente corretto e sensato.

    eso93 ha scritto:


    Il problema che mi da l' ultima città e NON la più lunga

    es. Milano Vercelli Lodi Crotone Alessandria Roma ( mi restituisce Roma
    Assicurati che non ci siano spazi prima/dopo le parole ... ovviamente contano.
  • Re: [RISOLTO]Esercizio java università

    Città=output[0];
    for (int i=0;i<città.length()+1;i++){
    if(i>dimensione){
    dimensione=i;
    }

    ho fatto anche così e funziona ma come faccio a "concatenare" la relativa città?
  • Re: [RISOLTO]Esercizio java università

    eso93 ha scritto:


    Città=output[0];
    for (int i=0;i<città.length()+1;i++){
    if(i>dimensione){
    dimensione=i;
    }
    Questo che hai scritto non mi pare proprio abbia senso ....
  • Re: [RISOLTO]Esercizio java università

    String parolaLunga=arrayParole[0];
    for(int i=1;i<arrayParole.length;i++){
    if(arrayParole.length() > parolaLunga.length() ) {
    parolaLunga=arrayParole;
    }
    }

    Il problema che mi da l' ultima città e NON la più lunga

    es. Milano Vercelli Lodi Crotone Alessandria Roma ( mi restituisce Roma) NON CAPISCO IL PERCHE'
  • Re: [RISOLTO]Esercizio java università

    eso93 ha scritto:


    String parolaLunga=arrayParole[0]; 
    for(int i=1;i<arrayParole.length;i++){ 
    if(arrayParole[i].length() > parolaLunga.length() ) { 
    parolaLunga=arrayParole[i]; 
    } 
    }
    Questo codice di per sé È corretto. Il senso è proprio quello che chiedi.

    eso93 ha scritto:


    Il problema che mi da l' ultima città e NON la più lunga

    NON CAPISCO IL PERCHE'
    Hai debuggato? Significa eseguire il codice passo passo e verificare, in questo caso, le lunghezze osservando se procede come ti aspetti.
Devi accedere o registrarti per scrivere nel forum
9 risposte