Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Ordinamento Map

  1. #1

    Ordinamento Map

    Ciao!!
    Sto creando un'applicazione web con Spring e sto avendo qualche problema nell'ordinare i risultati di una query.
    Tale query è la classica query di autocomplete di un form e quindi, se viene inserito 'java' vorrei mi visualizzasse nell'ordine (per esempio):
    • Java
    • Javascript
    • Framework Java
    • ...


    Insomma, vorrei un ordinamento per pertinenza.
    Ero riuscito a risolvere con una query particolare, ma nel passaggio dei dati tra il controller e la view (che purtroppo DEVE avvenire con una Map...) l'ordine mi viene perso...

    A questo punto ho pensato di inserirli in ordine alfabetico (meglio di niente...in fin dei conti quel che più mi importa è avere per primo quello che è stato inserito!) con questo metodo della mia view:
    Codice PHP:
    protected void renderMergedOutputModel(Map mapHttpServletRequest request,
                
    HttpServletResponse responsethrows Exception {

            
    Map m = new TreeMap(map);
            
    Set set m.entrySet();
            
            
    Iterator i set.iterator();
            while(
    i.hasNext()) {
                
    Map.Entry me = (Map.Entry)i.next();
                
    response.getWriter().write(me.getKey()+"|"+me.getValue()+"\n");
            } 
    Il problema è che in questo caso i caratteri maiuscoli mi vengono considerati prima dei caratteri minuscoli...

    Ad esempio, se inserisco 'java' il risultato ottenuto è del tipo:
    • JSON-RPC-Java
    • Java
    • Java Cups
    • Java Servlet Technology
    • ...


    Insomma, mette JSON-RPC-Java prima di tutti perché è composto di tutte lettere maiuscole...

    Esiste un qualche metodo per rendere questo ordinamento key-unsensitive???

    Grazie, ciao!!

  2. #2
    Ho risolto l'ordinamento alfabetico!!
    Ho creato un oggetto Comparator al quale ho passato le stringhe lowerCase e l'ho dato in input al TreeMap che ho in seguito riempito con la mia Map.

    Questo è il codice semmai qualcuno possa ritenerlo utile!!

    Codice PHP:
    Comparator customCompare = new Comparator() {
        public 
    int compare(Object obj1Object obj2) {
            
    String comp1obj1.toString().toLowerCase();
            
    String comp2obj2.toString().toLowerCase();
                    
            
    int compare comp1.compareTo(comp2);
            return 
    compare;
        }
    };
            
        
    Map m = new TreeMap(customCompare);
        
    m.putAll(map); 
    Spero di aver fatto cosa gradita, ciao!!

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.