|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2006
Città: Lassù
Messaggi: 2842
|
[JAVA] mistero su "contains"
Ho un problema con il metodo contains di ArrayList. Allora ho il seguente codice:
Codice:
ArrayList<URL> url=new ArrayList<URL>(); url.add(0,new URL("http://ciao.ciao")); ArrayList<URL> url2=new ArrayList<URL>(); url2.add(0,new URL("http://ciao.ciao")); Codice:
if ( url.contains(new URL("http://ciao.ciao")) ){ System.out.println("ok"); } Mentre se eseguo una condizione del genere: Codice:
if ( url.contains(url2.get(0) ){ System.out.println("ok"); } perchè????
__________________
Fa' che non turbi l'anima tua il triste spettacolo dell'ingiustizia umana; anch' essa, nell'economia divina, ha il suo valore. È sopra di essa che vedrai sorgere immancabilmente la giustizia di Dio. HO CONCLUSO EGREGIAMENTE TRATTATIVE CON OLTRE 90 UTENTI! ATTENZIONE: consiglio di evitare assolutamente trattative con l'utente Herant Ultima modifica di AbuJaffa : 02-06-2006 alle 16:35. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2006
Città: Lassù
Messaggi: 2842
|
up?
__________________
Fa' che non turbi l'anima tua il triste spettacolo dell'ingiustizia umana; anch' essa, nell'economia divina, ha il suo valore. È sopra di essa che vedrai sorgere immancabilmente la giustizia di Dio. HO CONCLUSO EGREGIAMENTE TRATTATIVE CON OLTRE 90 UTENTI! ATTENZIONE: consiglio di evitare assolutamente trattative con l'utente Herant |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 1660
|
La butto lì...
Java lavora con gli oggetti... I due oggetti da te creati hanno lo stesso contenuto (stato, valore degli attributi, "http://ciao.ciao"), ma riferimenti diversi... Adesso... Magari ho scritto una stronzata perché conosco Java da meno di 1 settimana... Ma avevo un problema simile con i Vector... Non so nemmeno se c'è un modo semplice per fare quello che vuoi fare... ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2006
Città: Lassù
Messaggi: 2842
|
ok, il fatto che hanno riferimenti diversi è più che palese. Ma allora guarda il codice seguente:
Codice:
ArrayList<String> url=new ArrayList<String>(); url.add(0,"ciao"); ArrayList<String> url2=new ArrayList<String>(); url2.add(0,"ciao"); if ( url.contains(url2) ){ System.out.println("ok"); }
__________________
Fa' che non turbi l'anima tua il triste spettacolo dell'ingiustizia umana; anch' essa, nell'economia divina, ha il suo valore. È sopra di essa che vedrai sorgere immancabilmente la giustizia di Dio. HO CONCLUSO EGREGIAMENTE TRATTATIVE CON OLTRE 90 UTENTI! ATTENZIONE: consiglio di evitare assolutamente trattative con l'utente Herant |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 1660
|
Io non ho molta conoscenza di Java...
Mi ricordo che in C++ alcune classi (e string era una di queste, mi pare) ridefinivano alcuni metodi... Ad esempio... Scrivendo ( stringa1 == stringa2 ) si effettuava il controllo sul valore e non sull'indirizzo (o riferimento)... Idem per costruttori di copia e cose simili... Scrivendo stringa1 = stringa2; si copiava solo il contenuto dell'oggetto stringa... In pratica per comodità veniva fatto un "overriding" anche degli operatori... In Java probabilmente ci sarà un meccanismo simile... Ma non ne so molto... ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Mar 2004
Messaggi: 1451
|
manca un cast?
__________________
Ciao ~ZeRO sTrEsS~ |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Nov 2000
Messaggi: 279
|
!
Perchè probabilmente non lo hai eseguito
<code> try{ ArrayList<URL> url=new ArrayList<URL>(); url.add(0,new URL("http://ciao.ciao")); ArrayList<URL> url2=new ArrayList<URL>(); url2.add(0,new URL("http://ciao.ciao")); if ( url.contains(new URL("http://ciao.ciao")) ){ System.out.println("ok"); } if ( url.contains(url2.get(0) )){ System.out.println("ok"); } } catch(Exception err){ } </code> questo codice stampa due ok sulla 1.5 tu su cosa compili?? ma comunque non credo sia quello....
__________________
In un arco di tempo abbastanza lungo l'indice di sopravvivenza di ognuno scende a zero |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jan 2006
Città: Lassù
Messaggi: 2842
|
mi spieghi questo:
Codice:
ArrayList<URL> url=new ArrayList<URL>(); url.add(0,new URL("http://ciao.ciao")); ArrayList<URL> url2=new ArrayList<URL>(); url2=url; if ( url.contains(new URL("http://ciao.ciao")) ){ System.out.println("ok1"); } if ( url.contains(url2) ){ System.out.println("ok2"); }
__________________
Fa' che non turbi l'anima tua il triste spettacolo dell'ingiustizia umana; anch' essa, nell'economia divina, ha il suo valore. È sopra di essa che vedrai sorgere immancabilmente la giustizia di Dio. HO CONCLUSO EGREGIAMENTE TRATTATIVE CON OLTRE 90 UTENTI! ATTENZIONE: consiglio di evitare assolutamente trattative con l'utente Herant |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Nov 2000
Messaggi: 279
|
Quote:
c'è un errore....forse non volevi scrivere contains(url2) ma contains(url2.get(0));
__________________
In un arco di tempo abbastanza lungo l'indice di sopravvivenza di ognuno scende a zero |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:08.