Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdMelanie Jansen Laatst gewijzigd meer dan 10 jaar geleden
1
Array nDeclaratie nCreatie nOpvragen nWijzigen nLengte String [ ] a; a = new String[10]; ……a[5]…… a[5] = ……; …a.Length… …is eigenlijk overbodig! List a; a = new List(); …a.Get(5)… a.Set(5,…); …a.Count… array: oject dat een rij waarden bevat, met speciale notaties List: array “ingepakt” in een klasse, met standaard notaties nInvoegen nAchtervoegen a.Insert(5,…); List a; a = new List (); a.Add(…); uitgebreide ……a[5]…… a[5] = ……;
2
Voorbeeld: array class Voorbeeld : Form { } Voorbeeld ( ) { } void klik(object o, AE ae) { } TextBox in; Button b; void teken(object o, PEA pea) { } in = new TextBox(); b = new Button(); b.Click += klik; this.Paint += teken; String s = in.Text; alles[n] = s; n++; this.Invalidate(); String [] alles; int n; alles = new String[100]; n = 0; for (int t=0; t<n; t++) { pea.Graphics.DrawString( alles[t],......, y ); y+=20; } int y = 50; if (n<100) { }
3
Voorbeeld: array class Voorbeeld : Form { } Voorbeeld ( ) { } void klik(object o, AE ae) { } TextBox in; Button b; void teken(object o, PEA pea) { } in = new TextBox(); b = new Button(); b.Click += klik; this.Paint += teken; String s = in.Text; alles[n] = s; n++; this.Invalidate(); String [] alles; int n; alles = new String[100]; n = 0; for (int t=0; t<n; t++) { pea.Graphics.DrawString( alles[t],......, y ); y+=20; } int y = 50; if (n<100) { } List List alles; alles = new List ( ); alles.Add(s); alles[t] alles.Count;t++)
4
Hoe is List gemaakt? class List { } Elem [] elems; int n; © List () { elems = new Elem[10]; n = 0; } Elem Get (int p) { return elems[p]; } int Count { get { 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; this [int p] get { }
5
Kan het ook anders? class List { } Elem [] elems; int n; © List () { elems = new Elem[10]; n = 0; } Elem Get (int p) { return elems[p]; } int Count { get { 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; this [int p] get { }
6
Ja: je kunt een List maken zonder dat een array nodig is class AndereList { } …… © AndereList () { …… } Elem this[int p] { …… } int Count { …… } void Add(Elem e) { …… } null 3
7
Ja: je kunt een List maken zonder dat een array nodig is class AndereList { } …… interface IList { } int Count { get; } ; void Clear(); void Add(Elem e) Elem this [int p] { get; set; } void Insert (int p, Elem e); © AndereList () { …… } Elem this[int p] { …… } int Count { …… } void Add(Elem e) { …… }
8
Namespace System.Collections.Generic List Andere List IList interfacediverse implementaties
9
Voorbeeld: List class Voorbeeld : Form { } Voorbeeld ( ) { } void klik(object o, AE ae) { } TextBox in; Button b; void teken(object o, PEA pea) { } in = new TextBox(); b = new Button(); b.Click += klik; this.Paint += teken; String s = in.Text; alles[n] = s; n++; this.Invalidate(); alles = new String[100]; n = 0; for (int t=0; t<n; t++) { pea.Graphics.DrawString( alles[t],......, y ); y+=20; } int y = 50; List alles; alles = new List ( ); alles.Add(s); alles[t] alles.Count;t++) IList alles; AndereList
10
Varianten van List ICollectionIList ISet interface ICollection { void Add(Elem x); bool Remove(Elem x); bool Contains(Elem x); int Count { get; } void Clear(); } interface IList : ICollection { Elem this[int n] { get; set; } ; int IndexOf(Elem x); void Insert(int n, Elem x); void RemoveAt(int n); } genummerd zonder dubbele
11
Implementaties van Collections LinkedList Queue Stack List HashSet SortedSet SortedList Sorted Dictionary IList ISet IDictionary ICollection
12
Voorbeeld: Collection class Voorbeeld : Form { } Voorbeeld ( ) { } void klik(object o, AE ae) { } TextBox in; Button b; void teken(object o, PEA pea) { } in = new TextBox(); b = new Button(); b.Click += klik; this.Paint += teken; String s = in.Text; alles[n] = s; n++; this.Invalidate(); alles = new String[100]; n = 0; for (int t=0; t<n; t++) { pea.Graphics.DrawString( alles[t],......, y ); y+=20; } int y = 50; List alles; alles = new List ( ); alles.Add(s); alles[t] alles.Count;t++) IList alles; Collection alles; LinkedList
13
Hoe doorloop je een Collection? nList nCollection for (int t=0; t<alles.Count; t++) doeIetsMet( alles[t] ); foreach (String s in alles) doeIetsMet( s ); opdracht for)(expropdrachtexpr ;; Speciale syntax voor specifieke situatie met bepaalde klasse typeexprinnaamforeach()opdracht
14
Implementaties van Collections IEnumerable IEnumerator IComparator LinkedList Queue Stack List HashSet SortedSet SortedList Sorted Dictionary IList ISet IDictionary ICollection
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.