Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    140

    ordinamento

    ciao a tutti,
    ho il seguente problema: ho diverse categorie di pietanze: extra,primi,secondi.
    devo ordinarli per codice e anche per categoria.. o meglio tutti gli extra vicini, tutti i primi.. ecc

    io ho fatto questo ma il punto è che mi mette le bevande prima degli extra ovviamente perchè b viene prima di e...
    come posso fare per mantenere le categorie in quell'ordina ma ordinare per codice...

    codice:
    public class OrdinamentoCodRep implements Comparator<Pietanza>{
    
    	public int compare(Pietanza p1,Pietanza p2){
    		int var;
    		int s1=p1.getCodice();
    		int s2=p2.getCodice();
    		String s1Cat=p1.getCategoria().toString();
    		String s2Cat=p2.getCategoria().toString();
    		var=s1Cat.compareTo(s2Cat);
    		if(var==0){
    		        if(s1<s2){
    				var=-1;
    			}
    			if(s1==s2){
    				var=0;
    			}
    			if(s1>s2){
    				var=1;
    			}
    		}
    		return var;
    	}
    }
    GRAZIE

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Associare ad ogni categoria un codice numero corrispondente all'ordine della categoria?

    Quindi la pietanza avrebbe oltre alla categoria anche un codiceCategoria.

    Meglio ancora potrebbe essere creare l'oggetto Categoria, con nome e indice.
    Oppure in OrdinamentoCodRep crei una HashMap e associ ad ogni categoria un codice numerico desiderato. Poi ogni volta estrai i 2 codici numerici che ti servono dalla HashMap e li confronti.

    Oppure fai più ordinamenti, il primo solo per gli extra, il secondo solo per i primi, il terzo solo per i secondi e così via...
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Pastore12
    Associare ad ogni categoria un codice numero corrispondente all'ordine della categoria?
    Una enum ... ancora meglio!

    enum Categoria { EXTRA, PRIMO, SECONDO, BEVANDA }

    Le enum sono già Comparable e il compareTo() compara in base al ordinal(), cioè esattamente secondo l'ordine di dichiarazione.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    140
    io ho associato un codice e funziona....


    io ho un enum.. ma nel codice che ti ho postato prima quando facevo la compare delle categorie mi metteva prima bevande anche se è dichiarato dopo....
    la risp la so: ho fatto un compare di stringhe,.... come funziona il compare di due enum??

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Aleb
    come funziona il compare di due enum??
    unaCateg.compareTo(altraCateg)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    140
    grazie, sei sempre un grande!

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.