Torna indietro   Hardware Upgrade Forum > Software > Programmazione

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
Marathon: arriva il Fortnite hardcore
Marathon: arriva il Fortnite hardcore
Marathon è il titolo multiplayer competitivo del momento. Ecco quali sono le caratteristiche di gioco principali, insieme alle nostre prime considerazioni dopo qualche "run" nell'extraction shooter di Bungie
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, ecco cosa può (e non può) fare
A New York HP ha messo al centro della scena HP IQ, la piattaforma di IA locale da 20 miliardi di parametri. L’abbiamo vista in funzione: è uno strumento che funziona, pensato per un target specifico, con vantaggi reali e limiti altrettanto evidenti
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
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
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
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
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
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
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
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
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
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
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
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
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


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, ...
PNY RTX 5080 Slim OC, sembra una Founders Edition ma non lo è PNY RTX 5080 Slim OC, sembra una Founders Editio...
Wi-Fi 7 con il design di una vetta innevata: ecco il nuovo sistema mesh di Huawei Wi-Fi 7 con il design di una vetta innevata: ecc...
Echo ed Echo Show in offerta: dagli spea...
PlayStation 5 Pro costa troppo? Quel pre...
TIM e Galaxy S26: arriva il trasferiment...
La risposta all'invasione degli agenti I...
Fire TV Stick: tutta la gamma Amazon in ...
ChatGPT arriva su CarPlay: OpenAI introd...
Un nuovo gioco RPG de Il Signore degli A...
Problemi di prestazioni per MacBook Pro ...
I limiti di utilizzo di Claude sono trop...
Stop al ransomware su Google Drive: avvi...
Pragmata entra in fase gold: il titolo d...
Recensione Crimson Desert: la mastodonti...
Google Pixel 11 Pro: i render svelano il...
Ray-Ban Meta: arrivano Blayzer e Scriber...
Ecco le 7 offerte presenti su Amazon col...
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: 13:33.


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