Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    JAVA ordinamento ArrayList

    Ciao a tutti ho un problema che mi sta facendo veramente impazzire. Io devo creare una classifica, e percio ho un ArrayList riempito con Int<----punteggio e String<----Nome giocatore Es...(50 claudio, 20 diego, ec....) il mio problema e che questo ArrayList lo devo ordinare dal punteggio più grande a quello piu piccolo. E mi deve restituire naturalmente il punteggio piu alto con il rispettivo giocatore associato e via dicendo con gli altri. Come posso fare?

    Grazie e ciao
    HARDCORE WILL NEVER DIE!!!http://www.musicahardcore.it
    http://www.bedandgo.it

  2. #2

    Re: JAVA ordinamento ArrayList

    Originariamente inviato da HARDCORE3000
    Ciao a tutti ho un problema che mi sta facendo veramente impazzire. Io devo creare una classifica, e percio ho un ArrayList riempito con Int<----punteggio e String<----Nome giocatore Es...(50 claudio, 20 diego, ec....) il mio problema e che questo ArrayList lo devo ordinare dal punteggio più grande a quello piu piccolo. E mi deve restituire naturalmente il punteggio piu alto con il rispettivo giocatore associato e via dicendo con gli altri. Come posso fare?

    Grazie e ciao
    Innanzi tutto usa la funzione toArray() per trasformare il tuo ArrayList(non c'avevi proprio altro eh!) in un normale array.
    La classe Arrays fornisce una miriade di metodi su array e in particolare per l'ordinamento.
    Dai un'occhiatina alle api e alla docuementazione e adattalo al tuo problema.
    Buon lavoro.

  3. #3

    Eccoci

    Allora ho provato ad usare Arrays e anche i metodi Sort il problema e che non si può ordiare un ArrayList contenente int e string . Ho risolto in questa maniera creo una variabile d'appoggio es.. int cont=0; poi faccio un ciclo for dell'ArrayList
    ricavo la prima int e gli dico se è maggiore a cont. Se questa condizione e vera memorizzo il valore di cont nella variabile int punteggio. Ti posto il primo pezzo di codice per ricavare il punteggio piu altro.

    int primoPosto = 0;
    int secondoPosto = 0;
    int cont = 0;///Verifico i punteggi che mi restituisce l'array se sono maggiori di 0

    ///***Primo ciclo che mi restituisce il punteggio piu alto
    for (int i = 0; i < primo.size(); i++) {

    // / System.out.println(primo.get(i));
    cont = (Integer) primo.get(i);///ricavo il Punteggio

    if (cont > primoPosto) {///Verifico se cont e minore di 0
    primoPosto = cont;///Primoposto assume il valore di cont

    lb1.setText(primo.get(i + 1) + " " + primoPosto);
    }

    i++;

    }

    Sono riuscito anche a trovare il punteggio minore a quello TOP sempre con un ciclo for e qualche condizione in più, adesso devo trovare solo il 3 classificato comunque grazie per il consiglio e spero di essermi un pochino non dico tanto spiegato bene
    HARDCORE WILL NEVER DIE!!!http://www.musicahardcore.it
    http://www.bedandgo.it

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    puoi usare un TreeSet che è ordinato per natura

  5. #5

    Re: Eccoci

    Cmq per quanto riguarda l'omogeneità dei dati(cioè la presenza contemporanea di dati di tipi diversi) allora potevi risolvere il problema usando un Vector e incapsulandoci dentro le String e gli interi come Integer.

    Se vuoi trovare il primo il secondo e il terzo in una sola passata(che è un po piu ragionevole invece di fare tre cicli for) ti potresti tenere tre variabili che ad ogni iterata del for contengono rispettivamente il primo,secondo e terzo.

    Oppure potresti utilizzare una cosa un po piu fine ma estremamente veloce e cioè gli heap, non so se ne hai mai sentito parlare. Dovresti cmq implementarti anche una classe a parte con metodi degli heap. Sarebbe forse perdita di tempo ma un ottimo(super!) esercizio di autoapprendimento.

  6. #6

    Grazie

    Volevo ringraziarvi per i consigli che mi avete dato, sicuramente se capiterà un problema simile a questo,ne terrò conto dei vostri consigli
    HARDCORE WILL NEVER DIE!!!http://www.musicahardcore.it
    http://www.bedandgo.it

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 © 2024 vBulletin Solutions, Inc. All rights reserved.