Aggiungere un oggetto ad un ARRAYLIST

di Maurizio93 il
10 risposte
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

  • 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
  • ArrayList<Student> arraylist = new ArrayList<Student>();
    Student s=new Student();
    arraylist.add(s);
  • 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)
  • Chiama inserimentovettore con i parametri richiesti ad esempio da dentro stampa_dipendenti dove crei i parametri necessari
  • 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]
  • Maurizio93 ha scritto:


    Mi da errore in corrispondenza delle tre aggiunte "vettore.add"
    Se la lista è parametrizzata <Dipendente>, non puoi ovviamente aggiungerci oggetti Azienda.
  • Potresti leggere un manuale relativo a java per assorbire i concetti relativi al linguaggio e quelli della programmazione ad oggetti ,ciao
  • 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]
  • 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