Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    l'arrayList non rimuove un oggetto

    Buongiorno ragazzi e buon inizio di weekend, avrei una domanda abbastanza insolita ma che purtroppo è essenziale per il continuo del mio progetto, in pratica ho due oggetti in cui all'interno vi sono arrayList, ovviamente indipendenti tra di loro, eppure quando provo ad eliminare un oggetto da un arrayList e inserirlo nell'altro ArrayList, ecco che l'inserimento funziona, mentre il remove no.. come mai? qui appresso il codice in questione:

    codice:
    private void TrasferimentoAcquista(SquadraAvversaria s1,int i,double denaro){
        if(((int)(Math.random()*10)+1)>4){
    	boolean ok = false;
    	this.SetBudgetRemove(denaro);
    	db.GetDb()[i].setNomeSquadra(this.GetNomeSquadra());
    	this.GetSquadra().add(db.GetDb()[i]);
    	s1.SetBudgetAdd(denaro);
    	ok = s1.GetSquadra().remove(db.GetDb()[i]); //nn rimuove!!!!
    	System.out.print("il giocatore ha accettato l'offerta!");
        }
    else System.out.print("...");
    }
    grazie per l'interessamento

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    codice:
    this.GetSquadra().add(db.GetDb()[i]);
    s1.SetBudgetAdd(denaro);
    ok = s1.GetSquadra().remove(db.GetDb()[i]);
    Alla prima riga aggiungi l'oggetto "db.GetDb()[ i ]" all'ArrayList di questo oggetto (quale che sia non lo so, ma non è importante)

    Alla terza riga stai cercando di togliere l'oggetto "db.GetDB()[ i ]" dall'ArrayList dell'oggetto "s1"... ma non mi pare che l'originale provenisse da lì... quindi, chi lo dice che c'è quell'oggetto in s1?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    allora, diciamo che db.GetDb() mi restituisce un array di oggetti, siccome gli arrayList sono sono stati creati come riferimenti a questo "db.GetDb()" e siccome i sono sicuro al 100 % che nell'arrayLIst esiste l'oggetto interessato che voglio eliminare.. come faccio a risolvere ???

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Mi sa che non mi sono spiegato bene. Scrivere così:

    codice:
    db.GetDb()[i]
    E' equivalente a scrivere così:
    codice:
    this.db.GetDb()[i]
    Quindi, siamo tutti certi che l'oggetto esiste nell'arrayList dell'oggetto "this", ma tu stai cercando di toglierlo dall'arrayList dell'oggetto "s1" che non è "this".


    E chi ci assicura che l'arrayList di "s1" contenga lo stesso oggetto dell'arrayList di "this"? Nessuno.

    Quindi, cerca di riscrivere quel codice in modo più pulito e cerca di chiarire bene quello che stai facendo.

    Originariamente inviato da giupardeb
    i sono sicuro al 100 % che nell'arrayLIst esiste l'oggetto interessato che voglio eliminare
    Sì... ma nell'arrayList di chi? Di "this", ma non in quello di "s1".

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Grazie sicuramente al tuo intervento mi hai fatto accendere una lampadina. In pratica il
    codice:
    db.GetDb()[i]
    è un metodo di una classe che ritorna un array, ora quest'ultimo array non era stato definito come static, a causa di ciò mi dava gli errori che ho citato all'inizio della discussione, mettendolo static tutto fila liscio.. anche se sinceramente non ho capito bene perché succede questo. Però l'importante è risolvere.. grazie 1000

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da giupardeb
    Grazie sicuramente al tuo intervento mi hai fatto accendere una lampadina. In pratica il
    codice:
    db.GetDb()[i]
    è un metodo di una classe che ritorna un array, ora quest'ultimo array non era stato definito come static, a causa di ciò mi dava gli errori che ho citato all'inizio della discussione, mettendolo static tutto fila liscio.. anche se sinceramente non ho capito bene perché succede questo. Però l'importante è risolvere.. grazie 1000
    Mica tanto... un problema risolto a caso oggi potrebbe diventare un problema ancora più grosso un domani quando riguarderai quel codice. Magari non è il tuo caso, ma di solito quando i problemi si risolvono buttando "static" a casaccio significa che non si ha programmato correttamente "ad oggetti".
    effeffe

  7. #7
    purtroppo lo so..ne sono consapevole..ma per quello che devo fare..l'importante che funzioni..è un progetto universitario...quindi basta che funziona e poi non lo userò più comunque sia..grazie per la considerazione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.