Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti
Zeekr sbarca ufficialmente in Italia con tre modelli elettrici premium, X, 7X e 001, distribuiti da Jameel Motors su una rete di 52 punti vendita già attivi. La Zeekr X parte da 39.900 euro, la 7X da 54.100: piattaforma a 800V, chip Snapdragon di ultima generazione, ricarica ultraveloce e un'autonomia dichiarata fino a 615 km WLTP. Le prime consegne sono previste a metà aprile
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


Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
HP Imagine 2026: abbiamo visto HP IQ all’opera, ecco cosa può (e non può) fare HP Imagine 2026: abbiamo visto HP IQ all’opera, ...
Kodak PIXPRO AZ653: la fotocamera bridge...
Monitor da gaming: Samsung si conferma l...
The Duskbloods potrebbe arrivare a fine ...
Il miglior pesce d'aprile del mondo Linu...
Monopattini elettrici a 62 km/h fermati ...
OpenAI porta la modalità vocale d...
Mercedes-Benz introduce lo steer-by-wire...
Hacker agli Uffizi, il museo smentisce: ...
Nvidia mostra il futuro della grafica co...
Windows 11, scattano gli aggiornamenti f...
TIM lancia l'offerta di Pasqua: Giga ill...
Prime foto reali per OPPO Find X9 Ultra:...
Il leak di Claude Code diventa un'esca: ...
Netflix, batosta in Italia: aumenti ille...
UFO e complotti: chi si cela dietro la n...
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: 17:24.


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