Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve
Dopo quasi un mese di utilizzo quotidiano e un viaggio medio-lungo in autostrada, raccontiamo pregi e limiti della Geely EX5: comfort premium, batteria LFP da 60,22 kWh, autonomia fino a 430 km e un prezzo che parte da 38.900 €
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-10-2007, 07:47   #1
estrosos
Junior Member
 
Iscritto dal: Oct 2007
Messaggi: 14
[java]--Linkelist + collections

ciao ragazzi..alla fine il problema dell'installazione dell'altro topic sono riscito a farlo..ora vi pongo un'altra domanda...
dovrei fare una rubrica in cui fare una classe contatto...con 1 costruttore che ogni volta a mia rikiesta mi crea un oggetto contatto nuovo..bene..fin qui.. a parte la novità del linguaggio nn c son problemi..
la mia domadna ora è questa..mi si kiede di utilizzare una LinkedList e una collection...volevo sapere qualke informazione fondamentale su queste due cose...se c sono analogie con la lista del c....e magari se potete fare quelke esempio..stupido..anke solo in pseudocodice....cosìkkè possa capire in fretta....grazie tante.ciao
estrosos è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2007, 08:20   #2
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da estrosos Guarda i messaggi
mi si kiede di utilizzare una LinkedList e una collection...volevo sapere qualke informazione fondamentale su queste due cose...
Il termine "collection" (c minuscola) in genere indica, parlando in modo molto generale, una "collezione", un insieme di elementi e basta.
LinkedList è una collection. Ed è una implementazione concreta principalmente delle interfacce List e Queue (da Java5).
Detto questo cosa non ti è chiaro?
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2007, 09:56   #3
estrosos
Junior Member
 
Iscritto dal: Oct 2007
Messaggi: 14
devo fare un programma che implementi una rubrica.....usando la classe Contatto e l'oggetto contatto..fatto tramite il costruttore....ecco poi dovrei fare una LinkedList di tutti i contatti usando anke collection...siccome sono nuovo del linguaggio nn saprei bene cm fare.....ecco il mio problema...qualek aiutino...magari con qualke riga di codice?...grazie
estrosos è offline   Rispondi citando il messaggio o parte di esso
Old 16-10-2007, 10:26   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da estrosos Guarda i messaggi
ecco poi dovrei fare una LinkedList di tutti i contatti usando anke collection
Ripeto ma solo per essere precisi. Parli di "collection" o "Collection" (C maiuscola)? Non è proprio la stessa cosa. "collection" come ho detto è solo un termine generale, come dire "animale" invece di gatto). "Collection" (C maiuscola) è una interfaccia nel package java.util ed la interfaccia che fa da "base" a tutti i Set, List e Queue. Senza contare che c'è pure una classe "Collections" (C maiuscola, s finale) che è una classe con metodi statici di utilità per le collezioni).
Quindi cosa intendi per "anche una collection"???

Quote:
Originariamente inviato da estrosos Guarda i messaggi
siccome sono nuovo del linguaggio nn saprei bene cm fare
Domanda, giusto per sapere: ti è stato imposto di usare proprio LinkedList?? Normalmente quando si sceglie una collezione non è che si prende la prima a caso .... ogni collezione ha le sue caratteristiche, vantaggi e svantaggi. Quindi dipende da cosa ci devi poi fare con questo "insieme" di contatti.

Comunque, per scrivere qualche riga di codice, ammesso che tu abbia una classe Contatto correttamente implementata, puoi fare:

Codice:
LinkedList<Contatto> contatti = new LinkedList<Contatto> ();

Contatto c = new Contatto (.......);

contatti.add (c);
.....
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2007, 09:28   #5
estrosos
Junior Member
 
Iscritto dal: Oct 2007
Messaggi: 14
grazie...in pratica devo usare una Collections....che mi serve per ordinare i contatti contenuti nella LinkedList dei contatti....
mi è stato suggerito di usare compareTo...
io vi posto il codice che ho fatto io...
cioè..la classe Contatto e la classe Rubrica...poi mi son fermato perkè nn sapevo andare avanti...
Codice PHP:
public class Contatto{
    private 
String nome=null,cognome=null,cf=null;//usare minuscoli
    
        
public Contatto(String nome,String cognome,String cf){
        
this.nome=nome;
        
this.cognome=cognome;
        
this.cf=cf;
    }
    
     public 
void setNome(String nome)
     {
        
this.nome=nome;         
        return; 
     }
     
   
     public 
String toString()
     {
        return(
"("+this.cognome+", "+this.nome+", "+this.cf+")"); 
     }
        
        
    } 
e questa è la classe rubrica..
Codice PHP:
import java.util.*;


public class 
Rubrica{

           public static 
void main(String[] args) {
        
LinkedList<Contatto>  = new LinkedList<Contatto>();
        
        
v.add(new Contatto("Staller","Ilona","69"));
        
v.add(new Contatto("Garibaldi","Giuseppe","1000"));
        
Collections.sort(v);
        
System.out.println(v);
    
        

            
            
        }
    } 
vi dico fatto girare così nn gira perkè inserendo quel collection così..mi va in errore..
poi dovrò modificare l'inserto dei nomi da tastiera..con le nextLIne..
estrosos è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2007, 10:02   #6
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da estrosos Guarda i messaggi
vi dico fatto girare così nn gira perkè inserendo quel collection così..mi va in errore..
Perché c'è da sistemare la questione della comparazione. Nella tua classe Contatto devi implementare l'interfaccia Comparable e quindi implementare il metodo compareTo (vedi documentazione).
Questo perché devi stabilire come 2 oggetti di tipo Contatto devono essere comparati tra di loro.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2007, 10:09   #7
estrosos
Junior Member
 
Iscritto dal: Oct 2007
Messaggi: 14
inizio a capirci qualcosa finalmente.....potresti darmi il link dove trovo la documentazione?..così almeno imparo anke questa cosa e posso fare la mia rubrica....grazie
estrosos è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2007, 10:34   #8
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da estrosos Guarda i messaggi
inizio a capirci qualcosa finalmente.....potresti darmi il link dove trovo la documentazione?..così almeno imparo anke questa cosa e posso fare la mia rubrica....grazie
La documentazione sarebbe meglio averla in locale sul PC e consultarla sempre in queste situazioni.

Se vuoi vedere la documentazione online, vedi <qui>. Se vuoi scaricarla (altamente consigliato), vai <qui> e scarica il pacchetto zip della documentazione.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2007, 10:58   #9
estrosos
Junior Member
 
Iscritto dal: Oct 2007
Messaggi: 14
grazie..cmq ora t posto cm ho sviluppato il programma con le annotazioni..così magari mi dici dove sbaglio..perkè nn riesco a capire bene gli errori..
questa è la class rubrica
Codice PHP:
import java.util.*;


public class 
Rubrica implements Comparable{

    public static 
void main(String[] args) {
        
LinkedList<Contatto>  = new LinkedList<Contatto>();
        
        
        
v.add(new Contatto("D'Agostino","Gigi","65363"));
        
v.add(new Contatto("Garibaldi","Giuseppe","1000"));
        
v.add(new Contatto("Manzoni","Alessandro","2952"));
        
v.add(new Contatto("Del Piero","Alessandro","1000"));
        
v.add(new Contatto("Garibaldi","Giuseppe","1000"));
        
System.out.println(v);    
        }

          public 
int compareTo(Contatto) {                            //voglio fare il compareTo per far confrontare 
                                                                      //due elementi contatto della LinkedList successivi
                                                                      //ed eventualmente scambiarli
                                                                      //ordinandoli per cognome per esempio
             
int i=0;
             
int j=0;
               for(
i=0;i<10;i++){
                  for(
j=1;j<11;j++){
                      if(
Contatto.get(j)>Contatto.get(i)){
                          
String scambia1=Contatto.get(j);
                          
String scambia2=Contatto.get(i);
                          
String temp;
                          
scambia1=temp;
                          
scambia1=scambia2;
                          
scambia2=temp;
                          
v.add("i",scambia2);
                          
v.add("j",scambia1);
                      }
                 }
              }     
             
    
          }
  }

questa è la class contatto
Codice PHP:
public class Contatto{
    private 
String nome=null,cognome=null,cf=null;//usare minuscoli
    
        
public Contatto(String nome,String cognome,String cf){
        
this.nome=nome;
        
this.cognome=cognome;
        
this.cf=cf;
    }
    
     public 
void setNome(String nome)
     {
        
this.nome=nome;         
        return; 
     }
     
   
     public 
String toString()
     {
        return(
"("+this.cognome+", "+this.nome+", "+this.cf+")"); 
     }
        
        
    } 
estrosos è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2007, 11:17   #10
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da estrosos Guarda i messaggi
grazie..cmq ora t posto cm ho sviluppato il programma con le annotazioni..così magari mi dici dove sbaglio..perkè nn riesco a capire bene gli errori..
La interfaccia Comparable la devi implementare in Contatto, non in Rubrica (la collezione da ordinare è di contatti).

Inoltre il compareTo è totalmente fuori senso.

In <questa> discussione e in <questa> avevo fatto un esempio (basilare) di implementazione di Comparable.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2007, 11:24   #11
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
Innanzi tutto l'interfaccia Comparable devi implementarla in contatto, visto che sono proprio i contatti che devono essere comparati tra di loro per essere ordinati. Poi, il metodo compareTo ritorna 0 se i due oggetti comparati sono uguali, ritorna 1 se l'oggetto comparato è maggiore e -1 se è minore, ovvero se l'oggetto corrente è maggiore...Tra tutti questi maggiori e minori sicuramente avrai capito poco nulla per cui ti posto il compareTo che ho usato per mettere in ordine alfabetico gli elementi di una tabella (ovviamente composti da più Stringhe):

Codice PHP:
public int compareTo(Object currentItem){
        if (!(
currentItem instanceof listItem))
              throw new 
ClassCastException("Oggetto sbagliato. Non comparabile.");

        
String compare = ((listItem)currentItem).getName();
        
String[] sorted = {this.getName(),compare};
        
Arrays.sort(sorted);
        if(
sorted[0].equals(this.getName()))
            return -
1;
        else if(
sorted[0].equals(compare))
            return 
1;
        else
            return 
0;
    } 
In questo caso non avevo usato una LikedList per contenere i miei oggetti ma avevo usato un Vector. Una volta aggiunti gli elementi ho richiamato il metodo Collections.sort(Vector che ho usato) che basandosi proprio sul compareTo mi ha ordinato gli elementi del mio vettore.

Spero che tu abbia capito

Ciauz
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2007, 11:53   #12
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Don[ITA] Guarda i messaggi
Spero che tu abbia capito
Oddio ... con l'esempio che hai fatto, dubito.

Innanzitutto sarebbe meglio usare i generics, se possibile. Se non li si usa, va anche bene fare il test e il lancio di ClassCastException ma in genere è sufficiente un cast (tanto lancerebbe lo stesso ClassCastException se l'oggetto non è appropriato). Inoltre se i campi da comparare sono di tipo String, è sufficiente usare il compareTo sulle stringhe.

Morale della favola, volendo usare i generics e volendo fare la comparazione su cognome/nome e ammesso che ci siano dei metodi getNome/getCognome, basta fare:

Codice:
public class Contatto implements Comparable<Contatto>
{
    ....

    public int compareTo (Contatto altro)
    {
        int r = getCognome().compareTo (altro.getCognome());
        if (r == 0)
            r = getNome().compareTo (altro.getNome());
        return r;
    }
}
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 17-10-2007, 14:20   #13
estrosos
Junior Member
 
Iscritto dal: Oct 2007
Messaggi: 14
nn ho ancora risolto perfettamente il prog ma ora c sto capendo molto d +...
grazie
estrosos è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Ninja CRISPi a 99,90€: friggitrice ad ar...
Sony rinuncia a Physint, XBOX pubblicher...
Sono gli iPhone più convenienti ora: iPh...
Metroid Ravenous: svelata la data d'usci...
vivo X500 Pro Max mostra per la prima vo...
Un bug nella frenata rigenerativa spegne...
Area Science Park lancia HPC4SME: calcol...
I Muse perdono @muse su Instagram e X: l...
Publisher, l'addio è ufficiale: Microsof...
Fps che aumentano fino al 60% con CPU In...
Bici elettrica L26 a 474,05€: è u...
Samsung prende in giro Apple e il nuovo ...
Con HomeAgent UGREEN porta l'IA dentro c...
Insta360 Ace Pro con ottica Leica a 199€...
Da finti tecnici a SMS truffa: come i tr...
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: 10:36.


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