Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    274

    [java] operazione di ordninamento

    Supponiamo io abbia 2 classi

    1 classe Nazioni
    1 classe Nazione

    supponiamo io abbia in nazione 3 attributi
    medaglie d'oro (int)
    medagle d'argento (int)
    medaglie di bronzo (int)
    che contengono il rispettivo numero di medaglie vinte

    Nazione contiene 1 array di Nazione...
    ora devo visualizzare l'elenco delle nazioni vincitrici in base alle medaglie vinte ( prevale il numero di ori , a parità di ori prevale il numero di argenti , a ulteriore parità prevale il numero di bronzi) ... quindi che fare ?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    160
    crei una classe NazioniComparator che implementa l'interfaccia Comparator, quindi ti scrivi il metodo compare per due oggetti Nazione, che confronta il numero di ori, se sono uguali li argenti, se sono uguali i bronzi.
    A questo punto usi il metodo static della classe Arrays.
    codice:
    Arrays.sort(array_nazioni, new NazioniComparator());

  3. #3
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    274
    hum .. advanced ...

    non posseggo tali nozioni ....

    posso lavorare solo con vector e array .. qualche idea di come fare ?
    non è possibile ?

  4. #4
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    274
    int maxIndex = 0;
    int countMax = 0;
    for(int i = 0; i < array.length;i++)
    {
    if(array[i].numeroOri() > array[maxIndex].numeroOri())
    {
    maxIndex = i;
    countMax = 1;
    }
    else if(array[i].numeroOri() == array[maxIndex].numeroOri());
    {
    countMax++;
    }

    }//for

    int indexes[] = new int[countMax];
    int j = 0;
    for(int i = 0; i <array.length;i ++)
    {
    if(array[i].numeroOri() == array[maxIndex].numeroOri())
    {
    indexes[j] = i;
    j++;
    }

    }

    ho buttato giù questo codice con il quale ad esempio tiro fuori tutte le nazioni che hanno un numero di ori uguale ... poi dovrei confrontare gli argenti ... pervedere fra quelli che hanno gli ori chi ha più argenti e discorso analogo per ugualglianza di argenti...
    una volta trovate le nazione , metto un booleano = estratto .. e proseguo ....

    si ma come faccio ?

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.