Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Star Wars Zero Company è l'erede di XCOM 2
Star Wars Zero Company è l'erede di XCOM 2
Bit Reactor porta nell’universo di Star Wars una struttura tattica che richiama apertamente XCOM 2, ma la arricchisce con legami tra i personaggi, progressione ruolistica, gestione della base e un sistema di combattimento costruito attorno a tre Punti Azione e alle risorse condivise della squadra
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia)
Abbiamo provato per una settimana intera la Can-Am Origin, la Dual Sport elettrica del gruppo canadese BRP: ecco com'è andata tra città, autostrada e un primo assaggio di sterrato
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Nelle ultime settimane abbiamo provato il mouse Logitech G305, la tastiera G316 X 98 e le cuffie G325. Si tratta del setup entry-level di Logitech che ormai, di "entry-level" ha ben poco. Tastiera e mouse offrono prestazioni di livello competitivo con quasi nessuna rinuncia e un livello di personalizzazione estremamente elevato. Le cuffie, invece, hanno mostrato qualche debolezza, ma propongono un ventaglio di funzionalità completo che consente di abbandonare completamente i cavi
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-09-2006, 13:48   #1
Kurogane
Senior Member
 
Iscritto dal: Feb 2005
Messaggi: 377
[JAVA] Ordinare mappa mediante comparator scelto da me

Salve, vorrei realizzare una mappa di denari ordinata secondo un mio criterio, cioè dalla moneta con valore + grande a quella con valore più piccolo. Pensavo di usare

dove c'è il metodo di aggiungi, dopo aver fatto lista.put(d);
Collections.sort(lista, cmp);

inoltre la classe cmp
class cmp implements Comparator{

public int compare(Object o1, Object o2){
Denaro d1=(Denaro) o1;
Denaro d2=(Denaro) o2;

if((d2.getValore() - d1.getValore()) < 0)
return -1;

if((d2.getValore() - d1.getValore()) == 0)
return 0;

return 1;
}
}

solo che non funziona xkè risulta che tale metodo non è presente in Collections dove sbaglio?
Kurogane è offline   Rispondi citando il messaggio o parte di esso
Old 25-09-2006, 14:20   #2
Andrea16v
Senior Member
 
L'Avatar di Andrea16v
 
Iscritto dal: Mar 2003
Messaggi: 3852
In attesa di qualcuno che ci capisce veramente, io ti dico che a me non piace il
"Collections.sort(lista, cmp);"
io di solito uso una cosa del tipo:
"Collections.sort(lista, new cmp());", dove cmp è una classe con il proprio CompareTo.

Prendi tutto con le pinze, e con i guanti...
__________________
Cerco fotocamera con buono zoom!! CLICCA!
° Moderatore del Forum Ufficiale di ElaborarE (responsabile sezione HI-FI e Car Audio) °
Andrea16v è offline   Rispondi citando il messaggio o parte di esso
Old 25-09-2006, 19:35   #3
Mixmar
Senior Member
 
L'Avatar di Mixmar
 
Iscritto dal: Feb 2002
Città: Trento
Messaggi: 962
Quote:
Originariamente inviato da Andrea16v
In attesa di qualcuno che ci capisce veramente, io ti dico che a me non piace il
"Collections.sort(lista, cmp);"
io di solito uso una cosa del tipo:
"Collections.sort(lista, new cmp());", dove cmp è una classe con il proprio CompareTo.

Prendi tutto con le pinze, e con i guanti...
Penso che Andrea16v ci abbia visto giusto: il compilatore ti avvisa che il metodo non è presente, perchè ai suoi occhi stai cercando di chiamare il metodo:

Codice:
Collections.sort(List, Class);
mentre lui si aspetta un

Codice:
Collections.sort(List, Comparator);
cioè, stai passando una classe al posto di una istanza.

Comunque, non so se sono io "quello che ci capisce"...
__________________
"Et Eärallo Endorenna utúlien. Sinome maruvan ar Hildinyar tenn' Ambar-metta!" -- Aragorn Elessar, Heir of Isildur
Mixmar -- OpenSuSE 11.1 on AMD 64 3000+ on DFI LanParty nF4-D | GeForce 6600 GT + Thermaltake Schooner on Samsung 710N
Storage -- ( 2 x Hitachi Deskstar 80 Gb + 1 x Hitachi 250 Gb ) = 1 RAID 5 + 1 Storage space LaCie Ethernet Disk Mini 250 Gb | HP - DV2150 EL MILAN CLAN
Mixmar è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2006, 04:37   #4
Kurogane
Senior Member
 
Iscritto dal: Feb 2005
Messaggi: 377
come dovrei scrivere per creare un metodo comparator?
Kurogane è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2006, 11:04   #5
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Mantenendo il codice che hai scritto:

Collections.sort(lista, new cmp());
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2006, 11:10   #6
Andrea16v
Senior Member
 
L'Avatar di Andrea16v
 
Iscritto dal: Mar 2003
Messaggi: 3852
Quote:
Originariamente inviato da Kurogane
come dovrei scrivere per creare un metodo comparator?
Te l'ho scritto sopra, devi cambiare l'istruzione di ordinamento che hai messo te con:
Collections.sort(lista, new cmp());

così a occhio non ci sono altre modifiche da fare, fai una prova..
__________________
Cerco fotocamera con buono zoom!! CLICCA!
° Moderatore del Forum Ufficiale di ElaborarE (responsabile sezione HI-FI e Car Audio) °
Andrea16v è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2006, 15:49   #7
Kurogane
Senior Member
 
Iscritto dal: Feb 2005
Messaggi: 377
ma io l'ho fatto, ma mi da quest'errore:
D:\poo\app260706\SoldiMap.java:29: cannot find symbol
symbol : method sort(java.util.Map<java.lang.Double,poo.app260706.Denaro>,poo.app260706.SoldiMap.cmp)
location: class java.util.Collections
Collections.sort(lista, new cmp());
^
Kurogane è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2006, 16:05   #8
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Se "lista" è una lista (List, figli & nipoti) è un paio di maniche.
Se "lista" è una mappa (Map, figli & nipoti) è un'altro paio di maniche (anzi parliamo proprio di un'altra camicia).

Il compilatore, che è un chiacchierone, ci dice che "lista" è una mappa. Le chiavi sono Double e i valori sono Denari.

Se nell'elemento E(K, V) della mappa la chiave K è il valore della moneta V puoi ottenere il risultato che cerchi usando la classe cmp che hai creato (cioè un comparator) e, anzichè Collections.sort, dire:

Codice:
Comparator<Double> cmp = new Comparator<Double>() {
    public int compareTo(Double a, Double b) {
        //eccetera
    }
};
Map<Double, Denaro> sortedMap = new TreeMap<Double, Denaro>(cmp);
sortedMap.putAll(lista);
sortedMap conterrà a tutto quello che c'era in lista ma ordinato per chiave, secondo quanto imposto dal Comparator cmp.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2006, 16:45   #9
porfax
Senior Member
 
Iscritto dal: Apr 2005
Messaggi: 898
Per ordinare le mappe con il comparator, conviene farsi restituire il keyset e poi richiamare il collections.sort(keyset, new comparator())
porfax è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2006, 17:03   #10
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Però il risultato non è una mappa ordinata.
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2006, 17:25   #11
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
Non puoi usare TreeMap?
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer
°SetiEmperor°| Ninja Technologies
{ qualunque cosa sia, è veloce e fa male (cit.) }
Angus è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2006, 17:32   #12
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Io mi sono perso. Ordiniamo una mappa, scorriamo in modo ordinato il contenuto di una mappa, creiamo una mappa ordinata o mappiamo una lista?
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2006, 17:35   #13
Kurogane
Senior Member
 
Iscritto dal: Feb 2005
Messaggi: 377
una precisazione: la mappa deve essere ordinata dal denaro più grande a quello + piccolo. Si poteva anche usare una treemap, vero, ma entrambe usano l'ordine naturale. La domanda è, come cavolo faccio a inserire nell'ordine che voglio io?
Kurogane è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2006, 17:42   #14
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
Quote:
Originariamente inviato da Kurogane
una precisazione: la mappa deve essere ordinata dal denaro più grande a quello + piccolo. Si poteva anche usare una treemap, vero, ma entrambe usano l'ordine naturale. La domanda è, come cavolo faccio a inserire nell'ordine che voglio io?
usa il costruttore public TreeMap(Comparator<? super K> c)
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer
°SetiEmperor°| Ninja Technologies
{ qualunque cosa sia, è veloce e fa male (cit.) }
Angus è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Test ride Can-Am Origin: la moto elettrica che fa dimenticare il motore a scoppio (ma occhio all'autonomia) Test ride Can-Am Origin: la moto elettrica che f...
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco Logitech G325, G305 e G316 X: il tris per chi no...
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Google perde la testa: AI Overview conso...
Anthropic presenta Claude Sonnet 5.5, e ...
ESA e ClearSpace svilupperanno un satell...
Oracle, stock option da quasi un miliard...
Starship: si è conclusa anticipat...
Un computer quantistico ha funzionato ne...
Sovranità sui dati: AWS è ...
Il nuovo nome della distro Linux mobile ...
Due ventole da 220 mm e non solo: Cooler...
Truffa telefonica via Google Ads: il bro...
Google pensiona le Gems di Gemini: cosa ...
Flight 14: incertezza per un problema a ...
C'è un problema con i robot Tesla: i dip...
Raggi gamma anomali dalla Via Lattea sve...
NIO vende il 30% della divisione scambio...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:23.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v