ArrayList con Oggetti diversi

di il
5 risposte

ArrayList con Oggetti diversi

Salve,

Ho un problemino, non si smetta mai di apprendere.
Questo è il mio codice

Contenitore contenitore1 = new Contenitore ("1", "v1");
		Contenitore contenitore2 = new Contenitore("2", "v2");

		ArrayList<Contenitore > allContenitore  = new ArrayList<>();
		allContenitore.add(contenitore1);
		allContenitore.add(contenitore2);

		Materiale materiale1 = new Materiale("m1", 2, 1000);
		Materiale materiale2 = new Materiale("m2", 2, 1000);
		Spedizione spedizione1 = new Spedizione("spedizione1", 2, "gestazione1");
		Spedizione spedizione2 = new Spedizione("spedizione2", 4, "gestazione2");

		ArrayList<Object> contenitoreP= new ArrayList<>();

		boolean insP = allContenitore.contains("v1");

		for (Contenitore v : allContenitore) {
			if (insP) {
				contenitoreP.add(materiale1.getAlfa() );
				contenitoreP.add(spedizione1.getAlfa());
			}
		}
		System.out.println(contenitoreP);

	}

In pratica ci sono due Oggetti diversi, essendo che devo inserire dati in una nuova lista aggiungendo nella nuova lista gli oggetti che desidero inserire, volevo sapere perchè non va?

In pratica:
AllContenitore [1][v1][2][v2]

Quando ho cercato il contenitore v1.
deve aggiungere il valore nella nuova lista cioè:
contenitoreP[v1][m1][spedizione1]

come si fà?

5 Risposte

  • Re: ArrayList con Oggetti diversi

    
    boolean insP = allContenitore.contains("v1");
    
    Sarà sempre falso. allContenitore è un ArrayList che contiene oggetti di tipo Contenitore, non oggetti String.


    Ciao.
  • Re: ArrayList con Oggetti diversi

    Ok.
    Rileggi di nuovo, ho modificato qualcosa.
    Mi puoi aiutare?
  • Re: ArrayList con Oggetti diversi

    Hai modificato la descrizione sotto il codice, ma il codice è rimasto sbagliato.
    Se vuoi cercare un oggetto di tipo Contenitore, al metodo contains() dovrai passare un oggetto Contenitore, non una stringa.
    Puoi passargli l'oggetto contenitore1 (che hai creato all'inizio del codice) o un nuovo oggetto con le stesse caratteristiche.
    Noi non possiamo sapere come è fatta la tua classe Contenitore (in particolare non possiamo sapere se e come hai effettuato l'override del metodo equals(), necessario se vuoi poter confrontare due oggetti di quella classe).

    Quindi, mi aspetterei che questo possa funzionare:
    
    boolean insP = allContenitore.contains( contenitore1 );
    
    Ciao.
  • Re: ArrayList con Oggetti diversi

    Ho Risolto!!!
    GRAZIE
  • Re: ArrayList con Oggetti diversi

    Bene.
Devi accedere o registrarti per scrivere nel forum
5 risposte