Download presentation
Presentation is loading. Please wait.
1
Array nDeclaratie nCreatie nOpvragen nWijzigen nLengte String [ ] a; a = new String[10]; ……a[5]…… a[5] = ……; …a.length… …is eigenlijk overbodig! ArrayList a; a = new ArrayList(); …a.get(5)… a.set(5,…); …a.size()… array: oject dat een rij waarden bevat, met speciale notaties ArrayList: array “ingepakt” in een klasse, met standaard notaties nInvoegen nAchtervoegen a.add(5,…); ArrayList a; a = new ArrayList (); a.add(…);
2
Voorbeeld: array class Voorbeeld extends Applet { } void init() { } void actionPerformed(ActEv e) { } TextField in; void paint(Graphics g) { } in = new TextField(20); this.add(in); in.addActionListener(this); implements ActionListener String s = in.getText(); alles[n] = s; n++; this.repaint(); String [] alles; int n; alles = new String[100]; n = 0; for (int t=0; t<n; t++) { g.drawString( alles[t], 10, y ); y+=20; } int y = 50; if (n<100) { }
3
Voorbeeld: array class Voorbeeld extends Applet { } void init() { } void actionPerformed(ActEv e) { } TextField in; void paint(Graphics g) { } in = new TextField(20); this.add(in); in.addActionListener(this); implements ActionListener String s = in.getText(); alles[n] = s; n++; this.repaint(); String [] alles; int n; alles = new String[100]; n = 0; for (int t=0; t<n; t++) { g.drawString( alles[t], 10, y ); y+=20; } int y = 50; ArrayList ArrayList alles; alles = new ArrayList (); alles.add(s); alles.get(t) alles.size();t++)
4
Hoe is ArrayList gemaakt? class ArrayList { } Elem [] elems; int n; © ArrayList () { elems = new Elem[10]; n = 0; } Elem get (int p) { return elems[p]; } int size( ) { return n; } void add(Elem e) { } elems[n]=e; n++; if (n>=elems.length) vergroot(); private void vergroot() { } Elem [] kopie; kopie= new Elem[2*n]; for (int t=0; t<n; t++) kopie[t] = elems[t] elems = kopie;
5
Kan het ook anders? class ArrayList { } Elem [] elems; int n; © ArrayList () { elems = new Elem[10]; n = 0; } Elem get (int p) { return elems[p]; } int size( ) { return n; } void add(Elem e) { } elems[n]=e; n++; if (n>=elems.length) vergroot(); private void vergroot() { } Elem [] kopie; kopie= new Elem[2*n]; for (int t=0; t<n; t++) kopie[t] = elems[t] elems = kopie;
6
Ja: je kunt een List maken zonder dat een array nodig is class LinkedList { } …… © LinkedList () { …… } Elem get (int p) { …… } int size( ) { …… } void add(Elem e) { …… } null 3
7
Ja: je kunt een List maken zonder dat een array nodig is class LinkedList { } …… © LinkedList () { …… } Elem get (int p) { …… } int size( ) { …… } void add(Elem e) { …… } interface List { } int size(); boolean isEmpty(); void clear(); void add(Elem e) void add(int p, Elem e); void set(int p, Elem e); Elem get (int p); abstract class AbstractList implements List { } boolean isEmpty() { return this.size()==0; }
8
Package java.util Linked List Array List Abstract List interfaceabstracte klassediverse implementaties
9
Voorbeeld: List class Voorbeeld extends Applet { } void init() { } void actionPerformed(ActEv e) { } TextField in; void paint(Graphics g) { } in = new TextField(20); this.add(in); in.addActionListener(this); implements ActionListener String s = in.getText(); alles[n] = s; n++; this.repaint(); String [] alles; int n; alles = new String[100]; n = 0; for (int t=0; t<n; t++) { g.drawString( alles[t], 10, y ); y+=20; } int y = 50; ArrayList alles; alles = new ArrayList (); alles.add(s); alles.get(t) alles.size();t++) List alles; LinkedList Linked List Array List Abstract List
10
Varianten van List CollectionList Set interface Collection { void add(Elem x); void remove(Elem x); boolean contains(Elem x); int size(); } interface List extends Collection { Elem get(int n); void set(int n, Elem x); void add(int n, Elem x); } genummerd zonder dubbele Sorted Set gesorteerd interface Set extends Collection {} interface SortedSet extends Set { Elem first(); Elem last(); }
11
Linked List Array List Hash Set Tree Set Implementaties van Collections CollectionList Set Sorted Set Abstract Collection Abstract List Abstract Set
12
Voorbeeld: Collection class Voorbeeld extends Applet { } void init() { } void actionPerformed(ActEv e) { } TextField in; void paint(Graphics g) { } in = new TextField(20); this.add(in); in.addActionListener(this); implements ActionListener String s = in.getText(); alles[n] = s; n++; this.repaint(); String [] alles; int n; alles = new String[100]; n = 0; for (int t=0; t<n; t++) { g.drawString( alles[t], 10, y ); y+=20; } int y = 50; List alles; alles = new ArrayList (); alles.add(s); alles.get(t) alles.size();t++) Collection alles; TreeSet
13
Hoe doorloop je een Collection? nList nCollection for (int t=0; t<alles.size(); t++) doeIetsMet( alles.get(t) ); for (String s : alles) doeIetsMet( s ); declaratie typeexpr:naam opdracht for)(expropdrachtexpr ;; Speciale syntax voor specifieke situatie met bepaalde klasse
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.