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

    java: ordinare una hashtable

    Volevo chiedervi questa cosa:
    ho necessità di creare una JComboBox ordinata per descrizione (label).
    questa combo viene popolata leggendo un file contentete stringhe in questo modo:
    chiave1|descrizion1
    chiave2|descrizion2
    chiave3|descrizion3
    ....

    come si può capire, selezionando un valore all'interno della combo, ho bisogno di risalire alla "chiave".
    Io ho pensato di caricare il tutto in una Hashtable, dove nel primo parametro del metodo "put" inserisco la "chiave" in modo che è univoca, nel secondo parametro inserisco un oggetto bean.
    dove "objectName" è la "chiave1...2...3...", "objectLabel" è la "decscrizione1...2...3...":

    public class SamObject
    {
    private String objectName;
    private String objectLabel;

    public SamObject(String objectName, String objectLabel) {
    __this.objectName = objectName;
    __this.objectLabel = objectLabel;
    }


    public String getObjectLabel()
    {
    __return objectLabel;
    }


    public String getObjectName()
    {
    __return objectName;
    }
    }


    La mia Hashtable sarà quindi strutturata così:
    "chiave1", new SamObject(objectName, objectLabel)
    "chiave2", new SamObject(objectName, objectLabel)
    "chiave3", new SamObject(objectName, objectLabel)
    ...

    Nella combo vedo visualizzato solo le descrizioni, la popolo nel seguente modo:
    ...
    jComboBox = new JComboBox(hashSamObject.values().toArray());

    e con il metodo JComboBox.getSelectedItem() risalgo al bean, che mi serve per recuperare la chiave.
    ...
    //recupero il nome del'oggetto in base alla selezione della combo
    SamObject samObject = (SamObject) jComboBox.getSelectedItem();
    return ((samObject == null) ? "" : samObject.getObjectName());

    solo che non riesco ad ordinare per descrizione la Hashtable; su internet ho girato un po' e fanno esempi che da una table estraggono valori_e li mettono in una lista ordinata, ma non ordinano la table stessa!
    mi sapete dare qualche dritta?
    thx

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    usa una TreeMap che è ordinata

  3. #3
    si ma io non voglio ordinare sulla chiave, così lo sapevo anche io.
    il mio obiettivo è ordinare sul secondo oggetto della Hashtable, e nelllo specifico sulla variabile objectLabel

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    edit

    capito
    il TreeSet ordina per elemento ma non puoi mettere una chiave, potresti aggiungere la chiave all'elemento se la struttura dell'applicazione te lo permette

  5. #5
    ti ringrazio ma ho fatto in altro modo ed ho risolto il problema usando un vector e i comparable

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.