Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da Andrea1979
    potresti semplicemente convertire a String e invertire le parti a sinistra con quelle a destra del simbolo "=", a quel punto utilizzi un qualsiasi metodo di ordinamento per String (oppure crei un array di String e usi java.utils.Arrays.sort)
    Non credo che la cosa funzionerebbe... un ordinamento lessicografico non è equivalente ad un ordinamento numerico. Si troverebbe con una cosa del genere:
    codice:
    1000 = "anatra"
    20 = "oca"
    300 = "gallina"
    Dovrebbe convertire in Integer, non in stringa i valori numerici.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  2. #12
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Ahhhh! Vero! Bhè, resta l'idea di fondo comunque. Al limite non si potrebbe costruire un comparator ad hoc e passarlo per gli Object al sort? Con 1.5 si può di sicuro.. e ci si risparmia il cast a String e l'inversione dx <-> sx
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #13
    Scusatemi ragazzi come posso faccio ad invertire?

    Faccio diventare chiave il valore?
    se è così non mi sembra una buona idea visto che ci potrebbe essere più valori uguali.

    Se metto i valori in un ArrayList e li ordino come faccio a sapere che quel valore corrisponde quella chiave?

    Scusatemi.

    grazie ancora.

  4. #14
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Devi per forza usare una Map?
    Non puoi costruirti una classe tua che implementa Comparable? In questo modo puoi tranquillamente utilizzare il metodo sort() della classe Arrays. Qualcosa del tipo:
    codice:
    public class MiaCoppia implements Comparable {
       private String chiave;
       private int valore;
    
       public MiaCoppia(String chiave, int valore) {
          this.chiave = chiave;
          this.valore = valore;
       }
    
       public String getChiave() { return chiave; }
       public int getValore() { return valore; }
    
       public void compareTo(Object obj) {
          MiaCoppia altro = (MiaCoppia) obj;
          
          return valore - altro.getValore();
       }
    }
    Quindi, costruisci un array di oggetto MiaCoppia prendendo i valore dalla tua Map:
    codice:
    MiaCoppia [] elenco = new MiaCoppia[ num_coppie_della_tua_map ];
    elenco[j] = new MiaCoppia(chiave, valore);
    Quindi le ordini utilizzando la classe Arrays:
    codice:
    Arrays.sort( elenco );
    Ora le avrai ordinate in ordine crescente:
    codice:
    for(int j=0; j<elenco.length; j++) {
       System.out.println("Ciave: " + elenco[j].getChiave() + " - valore: " + elenco[j].getValore());
    }
    Ciao. :Ciauz:
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #15
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    92
    Ma il criterio di fondo è capire con quale ordine vuoi tenere ste chiavi, io non vorrei essere pignolo, ma se vector, arraylist sono in fondo alla gerarchia che ha base collection un motivo ci sarà...

    Quelli della sun sono partiti da classi prive di ordinamento per poi crearne man mano altre che gestivano ordinamenti fino a quelle Vector e similri che seguono un ordinamento ordinato quale quello dei numeri naturali.

    Scusa ma puoi dirci secondo quale ordine vuoi impostare la tua collezione?Se non c'è lo dai la risposta sarà come i metodi sviluppati per il tuo problema..Astratta...

    Allora si è capito che vuoi oridnare dei valori che possono essere oggetti qualsiasi, secondo delle chiavi che pure possono essere oggetti, allora che genere di chiavi userai, se ho capito bene delle stringhe.

    Non esistono come giustamente ha detto LeleFt ordinamenti lessicografici, ma non puoi progettare con una normale mappa i tuoi elementi chiave valore e poi mettere in corrispondenza biunivoca le chiavi con dei numeri naturali? Tipo vector ma mascherando l'implementazione degli indici naturali, altrimenti la vedo molto dura...

  6. #16
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    92
    "Sono oggetti.

    In pratica ho n file e devo contare quante volte una parola ci sta in quel file. E falli apparire in ordine crescente."

    Scusa mo l'ho visto!

    Bhe scusa ma che te ne fai di un ordinamento?basta solo imporre in qualche brano di codice di esaminare iun valore e di compararlo con gli altri. Tipo usando una classe Wrappe in questo caso quella Integer;

    usa come chiave la parola e come valore il numero di volte che compare, poi selezioni il valore più grande(o il più piccolo) e lo stampi eliminando (dopo previa copia o su di una copia) quella chiave e quel valore cosi' il metodo che determina il più grande( o il più piccolo) li riordinerà a tuo piacere...

    Credo che si possa fare mo su più file la cosa si complica, potresti unirlo in un solo file temporaneo ed effettuare le stesse operazioni fatte per uno...

  7. #17
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    92
    Tra l'altro scusa se insitro ma creare un vettore di file e passare ogni file del vettore per fare l'operazione che hai fatto su un singolo file su tutti in modo che conteggi su ogni file usando sempre la stessa lista?

    Mi pare di aver capito che per un singolo file tu l'abbia già fatto.

    Pensandoci bene unire in un unico file non è performante ed è inutile.

  8. #18
    scusami comunque ho risolto a modo mio (forse un poco contorto).

    Grazie mille per l'aiuto che mi avete dato.

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.