Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    99

    [JAVA] ordinare un enumeration

    Ciao a tutti,
    inserisco un ResultSet in un HashTable,l'inserimento avviene seguendo
    l'ordine progressivo dell'id, ma poi quando per la visualizzazione passo
    tutto ad un Enumeration l'ordinamento viene sconvolto(parto dall'id 9, poi
    c'è l'8 ecc.).
    Inseguito ho copiato l'Enumeration in Vector e fatto
    Collections.sort(vector) ma in questo caso l'orinamento avviene per ordine
    alfabetico.
    Qualche consiglio?Si può ordinare un Vector o un Enumeration per id?
    Ho sbagliata l'accoppiata HashTable-Enumeration?
    Qualche riga di esempio?

  2. #2
    Allora che l'enumeration ti compaia in ordine disordinato è normale.
    Perchp quando inserisci un valore in un'HashTable , la sua posizione viene calcolato mediante la funzione Hash che restituisce un valore compreso fra 0 e il numero max di elementi presenti nella HashTable.
    Per cui anche se tu inserisci in ordine i valori , questi vengono inseriti in posizioni casuali.
    Quando fai l'enumeration l'hashTable ti restituisce i valori prendendoli in ordine di posizone dall'HashTable, dalla posizione 0 alla posizione y
    Una prima soluzione per ordinarli dopo che li hai messi nel Vector è quella di usare il metodo

    sort(List list, Comparator c)

    Dove oltre al vettore da ordinare devi passare l'istanza di una classe che estende l'interfaccia Comparator

    che ha solo due metodi.
    codice:
     int compare(Object o1, Object o2) 
              Compares its two arguments for order. 
     boolean equals(Object obj) 
              Indicates whether some other object is "equal to" this Comparator.
    devi ridefinire il metodo equals e compare
    In pratica stabilisci tu come devono essere confrontati gli elementi del vettore.
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

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.