Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Destiny Rising: quando un gioco mobile supera il gioco originale
Destiny Rising: quando un gioco mobile supera il gioco originale
Tra il declino di Destiny 2 e la crisi di Bungie, il nuovo titolo mobile sviluppato da NetEase sorprende per profondità e varietà. Rising offre ciò che il live service di Bungie non riesce più a garantire, riportando i giocatori in un universo coerente. Un confronto che mette in luce i limiti tecnici e strategici dello studio di Bellevue
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-04-2009, 09:59   #1
Helldron
Senior Member
 
L'Avatar di Helldron
 
Iscritto dal: Jul 2007
Messaggi: 411
[JAVA] Problema classe che usa Iterator

Ciao a tutti..Ho un problema abbastanza fastidioso , magari è banale però non so se si tratta di codice o di importare qualche libreria per questa mia classe che usa Iterator. Quando compilo il main() il compilatore mi tira fuori:


C:\Enrico\università\esercizi java>javac LCITest.java
.\LCI.java:16: cannot find symbol
symbol : class Iterator
location: class LCI
public Iterator enumera(){
^
.\LCI.java:21: cannot find symbol
symbol : class Iterator
location: class LCI
private class LCIIterator implements Iterator{
^
LCITest.java:14: cannot find symbol
symbol : class Iterator
location: class LCITest
Iterator it = lista.enumera();
^
3 errors

La classe LCI è questa:
public class LCI{
/**OVERVIEW: la classe creao oggetti ListaConcatenataDiInteri che sanno aggiungere oggetti NodoInt in testa e che hanno un iteratore per gestirli*/

private NodoInt testa;

public LCI(){
testa = null;
}

public void addInTesta(NodoInt x){
x.setSuccessivo(testa);
testa = x;
}

public Iterator enumera(){
/**REQUIRES: non modificare la lista quando l'Iteratore è in uso*/
return new LCIIterator();
}//il metodo generatore

private class LCIIterator implements Iterator{

private NodoInt dove;

public LCIIterator(){
dove = testa;
}

public boolean hasNext(){
return dove != null;
}

public Object next(){
return new Integer(dove.getValore()); //wrapping del tipo che restituisce getValore(cioè un int) in uno di tipo non primitivo(Integer)
}

public void remove(){
dove = dove.getSuccessivo();
}
}
}

la classe NodoInt serve solo per creare un oggetto nodo:
public class NodoInt{

/**OVERVIEW: classe che crea oggetti di tipo NodoInt con 1 valore intero e puntatore al successivo elemento di una lista
fA: <intero,riferimento nodo successivo> -> <val,succ>
IR: val != int && succ != NodoInt*/

private int val;
private NodoInt succ;

public NodoInt(int n){
val = n;
succ = null;
}

public int getValore(){
/** @return: this.val*/
return val;
}

public NodoInt getSuccessivo(){
/**MODIFIES: restituisce il riferimento a this (effetto collaterale)*/
return succ;
}

public void setSuccessivo(NodoInt x){
/**EFFECTS: modifica il valore di this (variabile succ) che diventa il riferimento a x
MODIFIES: modifica il valore di this (variabile succ) che diventa il riferimento a x (effetto collaterale)
@param: NodoInt*/

succ = x;
}
}
La classe del main è questa:
public class LCITest{
public static void main(String[] args){

LCI lista = new LCI();

NodoInt a = new NodoInt(12);
NodoInt b = new NodoInt(20);
NodoInt c = new NodoInt(-30);

a.setSuccessivo(b);
b.setSuccessivo(c);

lista.addInTesta(a);

Iterator it = lista.enumera();
int i = 0;

while(it.hasNext()){
int k = ((Integer)it.next().intValue()); //wrapping da Integer a int per recuperare il valore dell-elemento i-esimo della lista

System.out.println("valore "+i+" della lista: "+k+"\n");

it.remove();

i++;
}
}
}

Grazie!!!
__________________
MOTHERBOARD Asus P5Q-Pro - CPU intel Core 2 Quad Q9550 2.8 Ghz 12 MB Cache - VGA Sapphire Radeon HD4870 512 MB - HD Seagate Barracuda 7200 500GB 32 MB - RAM 4 GB ocz platinum DDR2 pc6400 800 Mhz @5-4-4 - ALIM Enermax 620W - CASE Enermax Chakra - OS Windows 7 Professional 64bit
Helldron è offline   Rispondi citando il messaggio o parte di esso
Old 18-04-2009, 13:16   #2
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2774
Hai importato java.util.Iterator?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 19-04-2009, 11:34   #3
Helldron
Senior Member
 
L'Avatar di Helldron
 
Iscritto dal: Jul 2007
Messaggi: 411
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Hai importato java.util.Iterator?
Ecco non sapevo di doverla importare quella libreria, ci provo e vediamo se funge! Grazie
__________________
MOTHERBOARD Asus P5Q-Pro - CPU intel Core 2 Quad Q9550 2.8 Ghz 12 MB Cache - VGA Sapphire Radeon HD4870 512 MB - HD Seagate Barracuda 7200 500GB 32 MB - RAM 4 GB ocz platinum DDR2 pc6400 800 Mhz @5-4-4 - ALIM Enermax 620W - CASE Enermax Chakra - OS Windows 7 Professional 64bit
Helldron è offline   Rispondi citando il messaggio o parte di esso
Old 20-04-2009, 16:03   #4
Helldron
Senior Member
 
L'Avatar di Helldron
 
Iscritto dal: Jul 2007
Messaggi: 411
Ok problema risorlto..solo ora il compilatore mi da errore all'istruzione:

int k = ((Integer)it.next()).intValue();
---------------------------^
//wrapping da Integer a int per recuperare il valore dell-elemento i-esimo della lista

E' sempre del tipo cannot find symbol, insomma poche info utili

Ho controllato l'API di Integer e così si usa, a quanto pare, però mi sembra molto strano, a livello di semantica dovrebbe funzionare
__________________
MOTHERBOARD Asus P5Q-Pro - CPU intel Core 2 Quad Q9550 2.8 Ghz 12 MB Cache - VGA Sapphire Radeon HD4870 512 MB - HD Seagate Barracuda 7200 500GB 32 MB - RAM 4 GB ocz platinum DDR2 pc6400 800 Mhz @5-4-4 - ALIM Enermax 620W - CASE Enermax Chakra - OS Windows 7 Professional 64bit
Helldron è offline   Rispondi citando il messaggio o parte di esso
Old 20-04-2009, 16:37   #5
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Helldron Guarda i messaggi
E' sempre del tipo cannot find symbol, insomma poche info utili
Hum, la classe Integer fa parte del package java.lang e questo package viene importato di default dal compilatore quindi non può essere Integer il simbolo che non trova.

Magari se posti tutto il messaggio, come hai fatto nel primo post:
Quote:
C:\Enrico\università\esercizi java>javac LCITest.java
.\LCI.java:16: cannot find symbol
symbol : class Iterator
location: class LCI
scopriamo a che simbolo si riferisce
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2009, 18:46   #6
Helldron
Senior Member
 
L'Avatar di Helldron
 
Iscritto dal: Jul 2007
Messaggi: 411
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Hum, la classe Integer fa parte del package java.lang e questo package viene importato di default dal compilatore quindi non può essere Integer il simbolo che non trova.

Magari se posti tutto il messaggio, come hai fatto nel primo post:

scopriamo a che simbolo si riferisce
Ho risolto era un problema di grammatica però adesso ho scoperto un'altra cosa un pò strana nell'output.
Sembra che qualcosa non vada a buon fine.

Ho dichiarato 4 oggetti di tipo NodoInt e gli ho passato i rispettivi valori, li ho concatenati tramite il metodo setSuccessivo() mentre la lista concatenata ha in testa il nodoInt "a". Ora però mi stampa solo il valore di "a" e non degli altri elementi, ho controllato l'iteratore della classe LCI però mi pare vada tutto bene nella semantica..voi vedete qualche errore??

/**
output:
valore 0 della lista: 12
//qui andrebbero gli altri valori della lista e cioè di b,c,d
*/
__________________
MOTHERBOARD Asus P5Q-Pro - CPU intel Core 2 Quad Q9550 2.8 Ghz 12 MB Cache - VGA Sapphire Radeon HD4870 512 MB - HD Seagate Barracuda 7200 500GB 32 MB - RAM 4 GB ocz platinum DDR2 pc6400 800 Mhz @5-4-4 - ALIM Enermax 620W - CASE Enermax Chakra - OS Windows 7 Professional 64bit
Helldron è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2009, 19:07   #7
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Io darei un'occhiata a next perchè secondo me non "nexta"...
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2009, 10:53   #8
Helldron
Senior Member
 
L'Avatar di Helldron
 
Iscritto dal: Jul 2007
Messaggi: 411
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Io darei un'occhiata a next perchè secondo me non "nexta"...
Ho ricontrollato il metodo next() e gli altri moduli che coinvolge. Mi sembra che vada liscio, non capisco. Se fosse addInTesta() il problema non mi farebbe visualizzare il primo elemento, sebbene sembra next() il punto crtico, a me pare scritto bene
__________________
MOTHERBOARD Asus P5Q-Pro - CPU intel Core 2 Quad Q9550 2.8 Ghz 12 MB Cache - VGA Sapphire Radeon HD4870 512 MB - HD Seagate Barracuda 7200 500GB 32 MB - RAM 4 GB ocz platinum DDR2 pc6400 800 Mhz @5-4-4 - ALIM Enermax 620W - CASE Enermax Chakra - OS Windows 7 Professional 64bit
Helldron è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2009, 12:52   #9
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2774
Puoi ripostare il codice completo, magari tra i tag code?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2009, 15:19   #10
Helldron
Senior Member
 
L'Avatar di Helldron
 
Iscritto dal: Jul 2007
Messaggi: 411
Eccolo:
Codice:
public class LCI{
/**OVERVIEW: la classe creao oggetti ListaConcatenataDiInteri che sanno aggiungere oggetti NodoInt in testa e che hanno un iteratore per gestirli*/

private NodoInt testa;

public LCI(){
testa = null;
}

public void addInTesta(NodoInt x){
x.setSuccessivo(testa);
testa = x;
}

public Iterator enumera(){
/**REQUIRES: non modificare la lista quando l'Iteratore è in uso*/
return new LCIIterator();
}//il metodo generatore

private class LCIIterator implements Iterator{

private NodoInt dove;

public LCIIterator(){
dove = testa;
}

public boolean hasNext(){
return dove != null;
}

public Object next(){
return new Integer(dove.getValore()); //wrapping del tipo che restituisce getValore(cioè un int) in uno di tipo non primitivo(Integer)
}

public void remove(){
dove = dove.getSuccessivo();
}
}
}


//la classe NodoInt serve solo per creare un oggetto nodo:

public class NodoInt{

/**OVERVIEW: classe che crea oggetti di tipo NodoInt con 1 valore intero e puntatore al successivo elemento di una lista
fA: <intero,riferimento nodo successivo> -> <val,succ>
IR: val != int && succ != NodoInt*/

private int val;
private NodoInt succ;

public NodoInt(int n){
val = n;
succ = null;
}

public int getValore(){
/** @return: this.val*/
return val;
}

public NodoInt getSuccessivo(){
/**MODIFIES: restituisce il riferimento a this (effetto collaterale)*/
return succ;
}

public void setSuccessivo(NodoInt x){
/**EFFECTS: modifica il valore di this (variabile succ) che diventa il riferimento a x
MODIFIES: modifica il valore di this (variabile succ) che diventa il riferimento a x (effetto collaterale)
@param: NodoInt*/

succ = x;
}
}

//La classe del main è questa:

public class LCITest{
public static void main(String[] args){

LCI lista = new LCI();

NodoInt a = new NodoInt(12);
NodoInt b = new NodoInt(20);
NodoInt c = new NodoInt(-30);

a.setSuccessivo(b);
b.setSuccessivo(c);

lista.addInTesta(a);

Iterator it = lista.enumera();
int i = 0;

while(it.hasNext()){
int k = ((Integer)it.next().intValue()); //wrapping da Integer a int per recuperare il valore dell-elemento i-esimo della lista

System.out.println("valore "+i+" della lista: "+k+"\n");

it.remove();

i++;
}
}
}
__________________
MOTHERBOARD Asus P5Q-Pro - CPU intel Core 2 Quad Q9550 2.8 Ghz 12 MB Cache - VGA Sapphire Radeon HD4870 512 MB - HD Seagate Barracuda 7200 500GB 32 MB - RAM 4 GB ocz platinum DDR2 pc6400 800 Mhz @5-4-4 - ALIM Enermax 620W - CASE Enermax Chakra - OS Windows 7 Professional 64bit
Helldron è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2009, 19:16   #11
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2774
Ciao, l'errore è nel modo in cui hai usato l'oggetto LCI e i NodoInt.
Hai prima settato i nodi in modo che l'uno puntasse al successivo, praticamente hai
a->b->c
Poi però hai usato il metodo addInTesta su a. addInTesta setta a come nuova testa ma setta anche il successore di a alla vecchia testa e quindi ottieni
a->null
Per risolvere devi usare solo addInTesta per inserire i vari nodi e non usare direttamente setSuccessivo:
Codice:
lista.addInTesta(c);
lista.addInTesta(b);
lista.addInTesta(a);
wingman87 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
iPhone 16 128GB bianco a 679€, 16e a 599...
Rigonfiamenti improvvisi della batteria:...
RoboBall è un robot a forma di pa...
Nothing guarda al futuro: nuovi finanzia...
Realme punta sulla fascia bassa: arriva ...
Interlune creerà un centro di ric...
Stop Killing Games: 97% delle firme conv...
La GTX 2080 Ti mai arrivata sul mercato,...
Hoolow Knight: Silksong, il gioco che a ...
Duolingo crolla in Borsa: la minaccia ar...
Battlefield 6: i giocatori console potra...
Citroen Racing, la marca ritorna alle co...
Windows 10 ESU: come partecipare al prog...
ASUS Vivobook 16X a meno di 470€ su Amaz...
Con Agent Payments Protocol di Google gl...
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: 07:14.


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