Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco
MiniLED di fascia media con local dimming a 192 zone, 144 Hz nativi e audio firmato Devialet. La prova strumentale riscontra colori affidabili e gaming reattivo, per un prodotto molto accessibile e convincente. Ma la soundbar aggiuntiva è quasi d'obbligo
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


Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
Apple potrebbe aver sospeso il progetto ...
Nintendo non seguirà l'esempio di...
Motorola ha lanciato un'app dedicata all...
Cyberpunk 2077 non si ferma e raggiunge ...
Samsung alza ancora i prezzi delle memor...
4 sconti tutti nuovi riscrivono la TOP 1...
Portatile HP con Intel Core Ultra 7 155H...
Smart TV Haier 50'' 4K crolla a 225,99€ ...
Google Pixel 10a a 399€ o 497€ (256GB) c...
Compare dal nulla e blocca lo schermo: c...
Tornano i super prezzi Nikon su Amazon, ...
Compatto, leggerissimo (1,2Kg), ma con 3...
Privacy Display per tutti i Galaxy S: Sa...
Le migliori cuffie in offerta su Amazon ...
SpaceX Starship: Ship 40 ha eseguito un ...
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: 20:17.


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