ik heb een array van objecten, hier kan ik objecten insteken, als de array vol is wordt ze verdubbeld
er zitten 2 fouten in, maar kweet niet waaraan dit zou liggen
er zitten 2 fouten in, maar kweet niet waaraan dit zou liggen
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
en gebruik idents / tabs !1. Gebruik alsjeblieft [ code] tags als je code post. Dat is een stuk duidelijker
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
| public class Stack
{
//instantievariabelen
private Object [] stack;
private int aantalElementen;
private final int beginGrootteArray = 5;
//constructor methode
public Stack()
{
stack = new Object [beginGrootteArray];
aantalElementen = 0;
}
//methode die een getal op de stack plaatst
public void push(Object element)
{
if (aantalElementen == stack.length)
this.verdubbelRij();
stack[aantalElementen] = element;
aantalElementen++;
}
//kijkt of de stack leeg is
public boolean isEmpty()
{
if (aantalElementen == 0)
return true;
else
return false;
}
//methode die een getal van de stack haalt en de plaats leegmaakt
public Object pop()
{
if (aantalElementen == 0)
{
System.out.println("De stack is leeg");
return null;
}
else
{
return stack[aantalElementen - 1];
stack[aantalElementen - 1] = null;
aantalElementen--;
}
}
//dit is een methode die ervoor zorgt dat de array stack verdubbeld kan worden
private void verdubbelRij()
{
Object [] hulp = new Object [stack.length * 2];
int i = 0;
while (i < stack.length)
{
hulp[i] = stack[i];
i++;
}
this.stack = hulp;
}
}//einde klasse |
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Hum das mooi prutNoble_Paladin: tja, dit is dus wel een opdracht, we moeten dit zelf implementeren.
SuccesBedankt,in ieder geval!
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
Beetje onzin vind ik. Als je van te voren de verwachte grootte van een verzameling opgeeft, wordt er intern een array van die grootte aangemaakt. De Vector implementatie heeft dan vrijwel geen nadelen en erg veel voordelen zoals handige methoden, Iterator ondersteuning etc. Wel is het altijd handig om met een ArrayList te werken ipv een Vector. De Vector is namelijk synchronized (thread-safe), waardoor er wat performance verlies plaats vindt. De ArrayList heeft dit probleem niet.Noble_Paladin: we moeten een array gebruiken, de leraar vond dat we te weinig gebruik maakten van arrays en veel te veel van Vectors
Inderdaad, dat is zelfs veel mooier vanuit verschillende oogpunten:nu heb ik in mijn gedachten dat ik mits enkele aanpassingen viaverdubbelRij zelf ook wel een Vector-klasse zou kunnen maken, niet?
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
1
2
3
4
5
6
| // kijk of de stack leeg is
public boolean isEmpty()
{
return aantalElementen == 0;
// geeft zelf al true of false terug
} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| //methode die een getal van de stack haalt en de plaats leegmaakt
public Object pop()
{
if (isEmpty())
{
System.out.println("De stack is leeg");
return null;
}
else
{
return stack[aantalElementen - 1];
stack[aantalElementen - 1] = null;
aantalElementen--;
}
} |