[Java] Vector e metodo equals[Risolto]

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Kamahl
Prode Principiante
Messaggi: 6
Iscrizione: lunedì 18 febbraio 2008, 9:36

[Java] Vector e metodo equals[Risolto]

Messaggio da Kamahl »

Premetto che sono un neofita di java.
Ho realizzato una mia classe, e mi trovo a dover utilizzare vei vector di oggetti di questa classe, fin qui tutto ok. Ora vorrei usare i metodi contains() removaAll(collection) e retainAll(collection) che per quel che ho capito usano il metodo equals per stabilire se 2 oggetti sono uguali. Vorrei che usassero un mio metodo equals . Come devo fare? Sono abbastanza sicuro che la cosa sia fattibile solo non so come.
Gazie in anticipo.
Ultima modifica di Kamahl il sabato 20 settembre 2008, 11:21, modificato 1 volta in totale.
misterxxitalia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 838
Iscrizione: domenica 11 marzo 2007, 22:15

Re: [Java] Vector e metodo equals

Messaggio da misterxxitalia »

questo è un esempio di metodo equals che ho usato qualche tempo fa:

Codice: Seleziona tutto

ublic boolean equals(Object obj) {
    if (obj instanceof Rubrica) {
      Rubrica r = (Rubrica ) obj;
      if (r.getNome().equals(getNome()) && r.getCognome().equals(getCognome())
      &&r.getIndirizzo().equals(getIndirizzo())&&r.getTelefono().equals(getTelefono())&&r.getAffinita().equals(getAffinita())
          ) return true;
      return false;
    }else return false;
}
in pratica l'ho riscritto adattandolo alle mie esigenze!naturalmente quando vuoi invocare questo metodo devi puntare alla classe dove si trova!ciao!
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [Java] Vector e metodo equals

Messaggio da Zoff »

Kamahl ha scritto: Premetto che sono un neofita di java.
Ho realizzato una mia classe, e mi trovo a dover utilizzare vei vector di oggetti di questa classe, fin qui tutto ok. Ora vorrei usare i metodi contains() removaAll(collection) e retainAll(collection) che per quel che ho capito usano il metodo equals per stabilire se 2 oggetti sono uguali. Vorrei che usassero un mio metodo equals . Come devo fare? Sono abbastanza sicuro che la cosa sia fattibile solo non so come.
Gazie in anticipo.
Devi estendere la classe Vector e fare l'ovveride del metodo.
Così:

Codice: Seleziona tutto

public class MyVector extends Vector{
	public MyVector(){
		super();
	}
	@Override
	public boolean equals(Object o){
		//Tuo codice
	}
}
ciauz
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Kamahl
Prode Principiante
Messaggi: 6
Iscrizione: lunedì 18 febbraio 2008, 9:36

Re: [Java] Vector e metodo equals

Messaggio da Kamahl »

Ok tutto chiaro, Grazie 1000.
Avatar utente
IppatsuMan
Prode Principiante
Messaggi: 199
Iscrizione: mercoledì 14 febbraio 2007, 1:31
Contatti:

Re: [Java] Vector e metodo equals[Risolto]

Messaggio da IppatsuMan »

Zoff ha scritto: Devi estendere la classe Vector e fare l'ovveride del metodo.
No, non va bene. Non devi effettuare l'override del metodo equals di Vector, ma del metodo equals degli oggetti contenuti nel Vector. I metodi contains removaAll e retainAll si occuperanno di richiamare al loro interno il metodo equals dei tuoi oggetti. Questo perché il tuo obiettivo e decidere se due oggetti contenuti nel Vector sono uguali, e non se sono uguali i due Vector.
ハッカー
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [Java] Vector e metodo equals[Risolto]

Messaggio da Zoff »

IppatsuMan ha scritto:
Zoff ha scritto: Devi estendere la classe Vector e fare l'ovveride del metodo.
No, non va bene. Non devi effettuare l'override del metodo equals di Vector, ma del metodo equals degli oggetti contenuti nel Vector. I metodi contains removaAll e retainAll si occuperanno di richiamare al loro interno il metodo equals dei tuoi oggetti. Questo perché il tuo obiettivo e decidere se due oggetti contenuti nel Vector sono uguali, e non se sono uguali i due Vector.
Giusto ho interpretato male le indicazioni iniziali  :-[ :-[ :-[
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti