Aggiungere un oggetto ad un ARRAYLIST

di il
10 risposte

Aggiungere un oggetto ad un ARRAYLIST

Ciao ragazzi,
ho creato 2 metodi:
-il primo per istanziare la classe creando 3 oggetti diversi e stamparli;
-il secondo per aggiungere gli oggetti precedentemente creati all'ARRAYLIST. Mi servirebbe aggiungerli ad una struttura dati perché successivamente dovrei effettuare l'ordinamento. Purtroppo il metodo .add non mi consente di farlo. Va bene solo per dati più semplici (ad es. numeri e stringhe). Suggerimenti?

package esercitazione;
import java.util.ArrayList;


public class Dipendente {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		stampa_dipendenti();
		inserimento_vettore();
		
	}
	
	public static void stampa_dipendenti() {
		Azienda dipendente = new Azienda("Maurizio Generosi", "Direttore", "09-06-1993");
		Azienda dipendente_2 = new Azienda("Nicola Lops", "Impiegato", "27-09-1993");
		Azienda dipendente_3 = new Azienda("Sabrina De Martino", "Segretaria", "18-07-1998");
		
		System.out.println("Dipendente:\n" + dipendente.toString());
		System.out.println("Dipendente:\n" + dipendente_2.toString());
		System.out.println("Dipendente:\n" + dipendente_3.toString());
	}
	
	public static void inserimento_vettore(Azienda dipendente, Azienda dipendente_2, Azienda dipendente_3) {
		ArrayList <String> vettore = new ArrayList <>();
		vettore.add(dipendente);
	}
	
}

10 Risposte

  • Re: Aggiungere un oggetto ad un ARRAYLIST

    Devi creare un ArrayList che usa un determinato tipo di oggetto ,l'esempio sotto usa l'oggetto Student :

    ArrayList<Student> arraylist = new ArrayList<Student>();
    arraylist.add(new Student(223, "Chaitanya", 26));

    https://beginnersbook.com/2013/12/java-arraylist-of-object-sort-example-comparable-and-comparator/
  • Re: Aggiungere un oggetto ad un ARRAYLIST

    Non mi sono spiegato bene. Io non voglio creare l'oggetto al momento dell'aggiunta all'ARRAYLIST. Io vorrei che le due azioni fossero separate: prima creo l'oggetto e poi lo aggiungo all'ARRAYLIST. Dimmi se non sono ancora sufficientemente chiaro .
    Si può fare in JAVA?
    
    ArrayList vettore = new ArrayList(Collections.nCopies(1, dipendente));
    
    Ho provato con questa istruzione ma mi stampa solo il primo
  • Re: Aggiungere un oggetto ad un ARRAYLIST

    ArrayList<Student> arraylist = new ArrayList<Student>();
    Student s=new Student();
    arraylist.add(s);
  • Re: Aggiungere un oggetto ad un ARRAYLIST

    Ok ma così vado ad istanziare la classe nello stesso blocco di istruzioni dove ho dichiarato l'ARRAYLIST. Io vorrei inserire "le due cose" in due metodi separati (proprio come nel mio script)
  • Re: Aggiungere un oggetto ad un ARRAYLIST

    Chiama inserimentovettore con i parametri richiesti ad esempio da dentro stampa_dipendenti dove crei i parametri necessari
  • Re: Aggiungere un oggetto ad un ARRAYLIST

    Mi da errore in corrispondenza delle tre aggiunte "vettore.add"

    [/code]
    public static void inserimento_vettore() {

    Azienda dipendente = new Azienda("Maurizio", "Generosi", "09-06-1993");
    Azienda dipendente_2 = new Azienda("Nicola Lops", "Impiegato", "27-09-1993");
    Azienda dipendente_3 = new Azienda("Sabrina De Martino", "Segretaria", "18-07-1998");

    ArrayList <Dipendente> vettore = new ArrayList <>();

    vettore.add(dipendente);
    vettore.add(dipendente_2);
    vettore.add(dipendente_3);
    }
    [/code]
  • Re: Aggiungere un oggetto ad un ARRAYLIST

    Maurizio93 ha scritto:


    Mi da errore in corrispondenza delle tre aggiunte "vettore.add"
    Se la lista è parametrizzata <Dipendente>, non puoi ovviamente aggiungerci oggetti Azienda.
  • Re: Aggiungere un oggetto ad un ARRAYLIST

    Potresti leggere un manuale relativo a java per assorbire i concetti relativi al linguaggio e quelli della programmazione ad oggetti ,ciao
  • Re: Aggiungere un oggetto ad un ARRAYLIST

    Allora ho risolto tutto
    Ora dovrei ordinare in ordinare solo i ruoli in ordine alfabetico e stamparli. L'ultimo for, però, mi stampa sempre il primo ruolo che, ovviamente, è giusto. Dovrei ottenere a video : Dirigente, Impiegato e Quadro. Ti riposto il codice completo

    [/code]
    package esercitazione;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;


    public class Dipendente {

    public static void main(String[] args) {

    Azienda dipendente = new Azienda("Maurizio Generosi", "Dirigente", "09-06-1993");
    Azienda dipendente_2 = new Azienda("Nicola Lops", "Quadro", "27-09-1993");
    Azienda dipendente_3 = new Azienda("Sabrina De Martino", "Impiegato", "18-07-1998");

    System.out.println("Dipendente:\n" + dipendente.toString());
    System.out.println("Dipendente:\n" + dipendente_2.toString());
    System.out.println("Dipendente:\n" + dipendente_3.toString());

    //AGGIUNGERE OGGETTI ALL'ARRAYLIST

    ArrayList <String> vettore = new ArrayList <>();

    vettore.add(dipendente.toString());
    vettore.add(dipendente_2.toString());
    vettore.add(dipendente_3.toString());

    int i;
    int j;

    for(i=0;i<vettore.size();i++) {
    System.out.println(vettore.get(i));
    }

    ArrayList <String> ruolo = new ArrayList <>();
    ruolo.add(dipendente.ruolo.toString());
    ruolo.add(dipendente_2.ruolo.toString());
    ruolo.add(dipendente_3.ruolo.toString());


    String ruolo_1 = "" + dipendente.ruolo;
    String ruolo_2 = "" + dipendente.ruolo;
    String ruolo_3 = "" + dipendente.ruolo;

    ArrayList <String> stringa = new ArrayList <>();

    stringa.add(ruolo_1);
    stringa.add(ruolo_2);
    stringa.add(ruolo_3);

    Collections.sort(stringa);

    for(i=0;i<stringa.size();i++) {

    System.out.println(stringa.get(i));


    }
    }
    }
    [/code]
  • Re: Aggiungere un oggetto ad un ARRAYLIST

    Maurizio93 ha scritto:


    Allora ho risolto tutto
    No mi spiace, non hai risolto granché ...

    Maurizio93 ha scritto:


    [/code] Azienda dipendente = new Azienda("Maurizio Generosi", "Dirigente", "09-06-1993");
    Azienda dipendente_2 = new Azienda("Nicola Lops", "Quadro", "27-09-1993");
    Azienda dipendente_3 = new Azienda("Sabrina De Martino", "Impiegato", "18-07-1998");[/code]
    Già qui ha poco senso. Se questi oggetti rappresentano un dipendente ... perché la classe si chiama Azienda ... e non più sensatamente Dipendente??

    Maurizio93 ha scritto:


    		ArrayList <String> vettore = new ArrayList <>();
    		
    		vettore.add(dipendente.toString());
    		vettore.add(dipendente_2.toString());
    		vettore.add(dipendente_3.toString());
    Fare una lista di stringhe con la "rappresentazione" in stringa dei dipendenti non è di per sé sbagliato ma così facendo si basa tutto sul formato del toString() e inoltre non ti permetterebbe di fare (facilmente) ordinamenti particolari o successive elaborazioni sui dipendenti.

    Maurizio93 ha scritto:


    		String ruolo_1 = "" + dipendente.ruolo;
    		String ruolo_2 = "" + dipendente.ruolo;
    		String ruolo_3 = "" + dipendente.ruolo;
    		
    		ArrayList <String> stringa = new ArrayList <>();
    		
    		stringa.add(ruolo_1);
    		stringa.add(ruolo_2);
    		stringa.add(ruolo_3);
    Qui sì hai 3 stringhe differenti (ruolo_1, ruolo_2 e ruolo_3) ma usano lo STESSO dipendente!
Devi accedere o registrarti per scrivere nel forum
10 risposte