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

    [Java]Code di Priorità

    Qualcuno mi sa spiegare come si può implementare una coda di priorita di oggetti di tipo data(ora,giorno) ordinata in ordine crescente per il tipo giorno, ho avuto qualche difficolta a dirgli al compilatore in che modo ordinare.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Prova a postare il codice che hai prodotto, così vediamo dov'è il problema.
    Ad ogni modo, non è il compilatore che ordina, ma la JVM.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Dovrebbe essere una cosa del genere

    codice:
    PriorityQueue<Data> pq=new PriorityQueue<Data>();
    //inserisco le varie date
    Il problema ora sta nell'ordinamento come faccio a digli che l'ordine deve essere effettuato per la data.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da zeno3083
    Il problema ora sta nell'ordinamento come faccio a digli che l'ordine deve essere effettuato per la data.
    PriorityQueue è una collezione di tipo "sorted" (e di conseguenza anche "ordered"). Gli elementi sono cioè mantenuti ordinati in base al loro contenuto, tramite quello che si chiama il "natural ordering" (Comparable) o tramite un ordinamento specifico (Comparator).

    Quindi ti basta implementare opportunamente Comparable<Data> nella tua classe Data.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Ciò come dovrei implementarlo se mi interessa che l'ordine sia per il tipo giorno.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da zeno3083
    Ciò come dovrei implementarlo se mi interessa che l'ordine sia per il tipo giorno.
    http://java.sun.com/javase/6/docs/ap...omparable.html

    http://java.sun.com/docs/books/tutor...ces/order.html
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Se faccio cosi va bene:

    codice:
    public class Data implements Comparable{
    	double time;
    	int giorno;
    	public Data (int giorno2,double time2){
    			
    		giorno=giorno2;
    		time=time2;
    	}
    	public double getTime(){
    		return time;
    	}
    	
    	public int compareTo(Object data){
    		int compare=(int)(time-((Data)dat).getTime());
    		return compare;	
    	}
    }
    e nella altra classe creo la coda di priorità
    codice:
    PriorityQueue<Data> listData=new PriorityQueue <Data>();
    Cosi dovrebbe funzionare che ne dite?

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.