[JAVA] Printen ArrayList

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • DutchGoat
  • Registratie: Oktober 2013
  • Laatst online: 07-10 13:10
Hallo,

Ik ben begonnen aan het programmeren in Java. Ik ben nog niet heel ver maar loop op dit moment tegen een probleem aan om een ArrayList te printen. Wanneer ik het print via toString dan krijg een output van bijvoorbeeld Donatie@1879b8b. Iemand enig idee hoe ik dit op kan lossen?

Ik heb twee klassen: Kas en Donaties. Hieronder de code.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.ArrayList;


public class Kas
{
    
    private Donatie donatie;
    private ArrayList<Donatie> donaties;
    private int volgendeDonatie;

    /**
     * Constructor for objects of class Kas
     */
    public Kas()
    {
       donaties = new ArrayList<>();

    }

    public void addDonatie (String naam, int bedrag, int datum){
       donaties.add(new Donatie(volgendeDonatie, naam, bedrag, datum));
       volgendeDonatie++;
    }
    
    public void showDonaties(){
        for(Donatie donatie : donaties){
            System.out.println(donatie.toString());
        }
        
    }
    
}


en

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Donatie
{
    // instance variables - replace the example below with your own
    private String naam;
    private int bedrag;
    private int id;
    private int datum;

    /**
     * Constructor for objects of class Donatie
     */
    public Donatie(int id, String naam, int bedrag, int datum)
    {
        this.id = id;
        this.naam = naam;
        this.bedrag = bedrag;
        this.datum = datum;
    }
    
      
}


Wanneer ik donaties toevoeg krijg ik een output in de vorm van: Donatie@1879b8b

Acties:
  • +7 Henk 'm!

  • Bolukan
  • Registratie: Oktober 2002
  • Laatst online: 28-09 18:33
Zoek eens op override ToString Java

[ Voor 30% gewijzigd door Bolukan op 05-11-2017 23:01 ]


Acties:
  • 0 Henk 'm!

  • Alain
  • Registratie: Oktober 2002
  • Niet online
Je hebt een object van class Donatie. Dit object heeft een referentie. Dit is wat je uitprint met object.toString();.

Wat jij wilt is waarschijnlijk

code:
1
donatie.getBedrag();


Dan moet je class wel een methode getBedrag bevatten die het (private) bedrag terug geeft.

code:
1
2
3
public int getBedrag() {
    return this.bedrag;
}

You don't have to be crazy to do this job, but it helps ....


Acties:
  • 0 Henk 'm!

  • SPee
  • Registratie: Oktober 2001
  • Laatst online: 02:06
Lees in, hoe de toString werkt en wat de default methode is. Dit is standaard Class@memoryindex.
Voor jouw eigen klasse moet je dus een eigen functie maken.
Voor arrays en collections kan dat niet. Dus moet je dat op een andere manier doen. Tip: deepToString

let the past be the past.


Acties:
  • +1 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
SPee schreef op donderdag 9 november 2017 @ 19:42:
Voor arrays en collections kan dat niet. Dus moet je dat op een andere manier doen. Tip: deepToString
Collections werkt het al prima, die printen gewoon de tostring van de elementen uit met blokhaken er om heen en komma's ertussen.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • cagXZ
  • Registratie: September 2013
  • Laatst online: 22-08 23:45
Ik ruik hier een case van
Java:
1
import java.util.Arrays;
Pagina: 1