Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-06-2007, 16:09   #1
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
...Java...ordinare ArrayList...

...ho necessità di ordinare un ArrayList...tale lista è composta da oggetti uguali...ogni oggetto presenta diversi valori tra i quali una variabile long per la quale vorrei sortare la stessa lista...come potrei muovermi?...

...grazie ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2007, 16:17   #2
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
molto semplice.
fai la tua classe cosi:

public MiaClasse implements Comparable<MiaClasse>//utilizzo dei generici


public int compareTo(MiaClasse mioOggetto){
qui stabilisci le regole di ordinamento....}


per ordinare l' array se non ti viene espressamento chiestto di implementare un tuo metodo sfrutti quello offerto gratis dalla classe Arrays

Arrays.sort(ArrayList tuaLiista).
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2007, 16:22   #3
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4423
...ms...sembra interessante...ma l'int in restituzione rappresenterebbe l'oggetto con cui verrà riordinata la lista?...nel mio caso il long?...

...grazie ciao...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2007, 16:43   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da ally Guarda i messaggi
...ms...sembra interessante...ma l'int in restituzione rappresenterebbe l'oggetto con cui verrà riordinata la lista?...nel mio caso il long?...
No, compareTo deve ritornare un valore minore, uguale o maggiore di zero rispettivamente se l'oggetto 'this' è minore, uguale o maggiore dell'oggetto referenziato dal parametro.

Vedere la documentazione della interfaccia Comparable.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2007, 17:06   #5
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Arrays.sort(ArrayList tuaLiista).
Questo solo se si ha un array. Per le collezioni List si usa Collections.sort()
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2007, 17:57   #6
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Quote:
Originariamente inviato da andbin Guarda i messaggi
Questo solo se si ha un array. Per le collezioni List si usa Collections.sort()
si è vero.

ho fatto per sicurezza anche una prova ed effettivamente per ArrayList serve Collections.

questo codive pero da il solito unsafe

import java.util.*;
public class PA{
public static void main(String[]args){
ArrayList a=new ArrayList();
a.add(1);
a.add(2);
a.add(-2);
Collections.sort(a);
for(int i=0;i<a.size();i++)
System.out.println(a.get(i));}}

Note: C:\Users\A\Documents\PA.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

non capisco però il perchè dato che non si utilizzano i generici.
inoltre come si esegue il comando -Xlint..da textpad nn ho trovato come lanciarlo.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2007, 18:05   #7
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Note: C:\Users\A\Documents\PA.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

non capisco però il perchè dato che non si utilizzano i generici.
Già ma nelle classi del framework, ArrayList è in realtà ArrayList<E> e add() ha appunto E come tipo del parametro mentre sort() ha List<T> come parametro.
Da lì saltano fuori i warning di "unchecked".

Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
inoltre come si esegue il comando -Xlint..da textpad nn ho trovato come lanciarlo.
Lancia a mano .... (non conosco textpad).
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2007, 18:07   #8
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
quindi bisognerebbe utilizzare i generici per evitare il problema?Solitamente però quei messaggi compaiono proprio andando a utilizzare i generici ad esempio quando si legge quacosa da file.

quale è la sintassi per lanciare quel comando da dos?
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2007, 18:14   #9
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
quindi bisognerebbe utilizzare i generici per evitare il problema?
Il compilatore ti avverte solo che stai usando dei raw-type con una classe che invece è generica e quindi potresti andare incontro a problemi. Usare i generics sarebbe meglio.
Comunque quei warning si possono sopprimere (con una annotazione) ma se il tuo codice non usa le nuove funzionalità specifiche di Java 5 puoi anche compilare con -source 1.4

Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Solitamente però quei messaggi compaiono proprio andando a utilizzare i generici ad esempio quando si legge quacosa da file.
Dipende da cosa fai ..... i generics non c'entrano nulla con la lettura dei file. Posta del codice per mostrare il problema.

Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
quale è la sintassi per lanciare quel comando da dos?
javac -Xlint:unchecked blabla.java
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2007, 18:14   #10
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Inserendoi generici si risolve. a rigurdo una domanda

assodato il perchè dell'avviso in questo caso anallizziamo un' altro:

ArrayList<String> a=(ArrayList<String>)ois.readObject()

in questa seconda condizione dipende dal fatto ce il compilatore non è sicuro che a tempo di esecuzione potra eseguire il Cast ad un' ArrauList di String...ciò è il generico a dare il problema
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2007, 18:25   #11
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
Inserendoi generici si risolve. a rigurdo una domanda

assodato il perchè dell'avviso in questo caso anallizziamo un' altro:

ArrayList<String> a=(ArrayList<String>)ois.readObject()

in questa seconda condizione dipende dal fatto ce il compilatore non è sicuro che a tempo di esecuzione potra eseguire il Cast ad un' ArrauList di String...ciò è il generico a dare il problema
I generics sono implementati tramite "erasure", le informazioni sui generics vengono eliminate nel bytecode generato dal compilatore.

Quando tu fai:
ArrayList<String> miaList = new ArrayList<String> ();

a runtime nell'oggetto referenziato da 'miaList' NON c'è alcuna informazione sul fatto che è un ArrayList di tipo <String>. È solo un ArrayList e basta.
Pertanto a runtime non posso sapere se miaList è un ArrayList di <Integer> o di <String> o altro.
Da lì il warning sul cast.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2007, 18:31   #12
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
Si ho letto un po di cose per cui se ho capito bene il warnng si verifica

-istanziando una struttura dichiarate generica del framework utilizzando i raw type

esempio:
ArrayList=new ArrayList();
lista.add();

oppure
facendo un cast di un tipo generico

ArrayList<String>=(ArrayList<Metodo>)metodo
e cio è dovuto all' arasure con cui sono gestiti i generici
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2007, 20:49   #13
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Beh, ci sono anche altri casi in cui, a causa dei generics, si ha un warning. Altre cose invece non si possono fare con i generics e allora si ottiene un errore in compilazione.

Comunque i generics studiali pure con calma ma bene ..... queste cose che abbiamo detto qui sono solo la punta dell'iceberg. Aspetta a vedere i bounds, type inference, wildcard, wildcard capture e varie altre cose ....
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2007, 22:25   #14
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
una cosa nn mi è chiarissima,se analizziamo il secondo caso ovvero dovuto all' erasure:

ArrayList<String> a=(ArrayList<String>) metodo

se a run-time da metodo viene fuori una arrayList non di stringhe dato che ciò nn puo essere garantito cosa avviene?
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 26-06-2007, 23:18   #15
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da nuovoUtente86 Guarda i messaggi
una cosa nn mi è chiarissima,se analizziamo il secondo caso ovvero dovuto all' erasure:

ArrayList<String> a=(ArrayList<String>) metodo

se a run-time da metodo viene fuori una arrayList non di stringhe dato che ciò nn puo essere garantito cosa avviene?
è garantito a livello di compilazione
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2007, 00:12   #16
nuovoUtente86
Senior Member
 
Iscritto dal: Mar 2007
Messaggi: 7863
ma dopo la compilazione i generici alla fine spariscono..sostituitida dei cast a quanto ho capito.
nuovoUtente86 è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2007, 00:27   #17
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
è garantito a livello di compilazione
La accendiamo?
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2007, 09:18   #18
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da ^TiGeRShArK^ Guarda i messaggi
è garantito a livello di compilazione
Nel caso di un metodo come ois.readObject() è tutt'altro che garantito, visto che restituisce un Object.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2007, 09:21   #19
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
La accendiamo?

e si che la accendiamo...
se io scrivo:
Codice:
ArrayList<Integer> a = null;
ArrayList<String>=(ArrayList<Integer>)a;
E vado a compilare c'è il compilatore che riceve il dono delle lingue e mi bestemmia in un centinaio di lingue morte e/o moribonde
__________________

Ultima modifica di ^TiGeRShArK^ : 27-06-2007 alle 09:27.
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 27-06-2007, 09:23   #20
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da andbin Guarda i messaggi
Nel caso di un metodo come ois.readObject() è tutt'altro che garantito, visto che restituisce un Object.
Ah..
ora ho capito che indendeva con metodo
leggendo questo:
Codice:
ArrayList<String>=(ArrayList<Metodo>)metodo
mi era venuto in mente che Metodo fosse una classe sua
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
Red Hat Enterprise Linux sbarca su AWS E...
Addio alle migliaia di cicli e anni di t...
Colpo di STMicroelectronics, un'intesa d...
La Ferrari elettrica si chiama Luce: ecc...
Proseguono le riparazioni in vista del l...
Cinema domestico low cost: proiettore Fu...
Sharp porta a ISE 2026 i nuovi display i...
Casa più sicura senza lavori: Arl...
Batterie esauste, l'Italia raccoglie sol...
Gmail cambia le regole: stop a Gmailify ...
Lutto nel mondo scientifico: si è spento...
Toyota sviluppa Fluorite, un motore open...
Google lancia l'allarme: un miliardo di ...
Secondo NVIDIA, i 660 miliardi di dollar...
Qualcomm punta sulla flessibilità...
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: 16:31.


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