Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    [JAVA] Ordinamento Map

    Salve ragazzi.
    Io ho un Map e dovrei ordinarlo, come posso fare?

    Devo visualizzare in ordine crescente in un frame la chiava e il suo valore.

    Grazie a tutti quelli che mi rispondono.

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Che classe stai utilizzando per l'implementazione della tua Map? Per esempio

    http://java.sun.com/j2se/1.4.2/docs/...l/TreeMap.html

    Tiene già la struttura ordinata.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Scusami sono stato poco chiaro. Uso un HashMap.

    Io vorrei ordinare il mio map per VALORI non per chavi.

    Capito? Grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Mica facile. Che genere di valori sono contenuti (ie: che cosa sono chiave e valore? Stringhe? interi?)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Sono oggetti.

    Prima di essere oggetti la chiave era stringa
    e il valore intero.

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

    Grazie ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    92
    Mi pare di Capire che vuoi una corrispondenza di un valore a un oggetto?Una lista ordinata con una corrispondenza tra naturalie oggetti.

    Puoi usare Vector o anche ArrayList, se non dovrai usare altri Thread al di fuori del principale(o comunque non più di uno contemporaneamente sugli oggetti della classe Vector o ArrayList) usa pure la seconda che non essendo sincronizzata è più performante.

    Ciao.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    92
    Non avevo letto bene ordinare per valori? Se non esiste una relazione di ordinamento tra gli oggetti che usi come valori non lo puoi fare, tra l'altro ti bsta invertire il ruolo chiave valore.

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Che cosa stampa questo:

    codice:
    Object[] ob = tuaHashMap.entrySet().toArray();
    for (int i = 0; i < ob.length; i++) {
      System.out.println(ob[i]);
    }
    Se è solo per visualizzazione e ti trovi con qualcosa del tipo:
    codice:
    casa=3
    e=29
    mela=1
    ...
    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)
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da salvio78
    [...] tra l'altro ti bsta invertire il ruolo chiave valore.
    Il problema è che Hashmap sovrascriverebbe il valore precente ad un successivo inserimento di una coppia chiave-valore in caso di chiave già esistente, per cui l'inversione chiave-valore non garantisce che i dati siano mantenuti.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  10. #10
    Ma se uso l'arrayList posso ordinare i valori, ma poi come faccio a sapere che quel valore è associato a quella chiave? a me serve sapere anche il valore a quale chiave è associata.

    Grazie dell'aiuto.

    Scusate questo l'avevo scritto prima di leggere.

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