programowanie obiektowe 10

background image

Kolekcje

background image

Przegląd zagadnień

Lista
Kolejka
Stos
Słownik
Podsumowanie
Pytania sprawdzające
Laboratorium

background image

Lista

Jedną z wad tablic jest ich stały rozmiar,

zawsze może zabraknąć miejsca na

dane lub też zwyczajnie może go być za

dużo
Klasa
List jest tablicą, która w razie

potrzeby zmienia długość. W momencie

jej tworzenia nie jest konieczne

definiowanie liczby przechowywanych

przez nią obiektów.
Klasa
List wyposażona jest w ciekawe

metody i właściwości, jedną z

najczęściej wykorzystywanych jest Add()

pozwalająca dodawać elementy listy.

background image

Lista – przykład (1)

Kod C# - część pierwsza

using System;
using System.Collections.Generic;

namespace Kolekcja {
public class Pracownik {
private int idPrac;
public Pracownik(int idPrac) {
this.idPrac = idPrac;
}
public override string ToString() {
return idPrac.ToString();
}
public int IdPrac {
get {
return idPrac;
}
set {
idPrac = value;
}
}
}

background image

Lista – przykład (2)

Kod C# - część druga

public class Tester {
static void Main() {
List<Pracownik> pracList = new List<Pracownik>();
List<int> intList = new List<int>();
for (int i = 0; i < 5; i++ ) {
pracList.Add( new Pracownik(i + 100));
intList.Add( i * 5);
}
for(int i=0; i < intList.Count; i++) {
Console.Write("{0} ", intList[i].ToString());
}
Console.WriteLine(" \n ");
for (int i = 0; i < pracList.Count; i++) {
Console.Write("{0} ", pracList[i].ToString());
}
Console.WriteLine(" \n ");

}

}
}

background image

Kolejka

Kolejka jest kolekcją typu FIFO (ang.

First-In, First-Out), co oznacza, że

pierwszy dołączony element jest również

obsłużony jako pierwszy
Ten typ kolekcji dobrze sprawdza się w

sytuacji dysponowania ograniczonymi

zasobami
Klasa Queue
udostępnia kilka

przydatnych metod – jak Enqueue() – do

dodawania elementów do kolejki,

Dequeue() – usuwa element z kolejki

zwracając jego wartość czy Peek()

zwracająca pierwszy element kolejki bez

usuwania z kolejki

background image

Kolejka – przykład

Kod C#

using System;
using System.Collections.Generic;

namespace Kolejka {
public class Ruch {
static void Main() {
Queue<Int32> Kolejeczka = new Queue<Int32>();
for (int i = 0; i < 6; i++) {
Kolejeczka.Enqueue(i * 5);
}
Console.Write("Wyświetlam kolejkę:\t");
Wyswietl(Kolejeczka);
Console.WriteLine("\n(Dequeue)\t{0}", Kolejeczka.Dequeue());
Wyswietl(Kolejeczka);
Console.WriteLine("\n(Peek)\t{0}", Kolejeczka.Peek());
Wyswietl(Kolejeczka);
}
public static void Wyswietl(IEnumerable<Int32> Kolekcja) {
IEnumerator<Int32> licznik = Kolekcja.GetEnumerator();
while (licznik.MoveNext())
Console.Write("{0} ", licznik.Current);
Console.WriteLine();
}
}
}

background image

Stos

Stos jest kolekcją typu LIFO (ang. Last-

In, First-Out) – ostatni element jest

zawsze wykorzystywany jako pierwszy
Do dodawania i usuwania elementów

ze stosu służą metody Push() oraz

Pop(). W klasie Stack istnieje również

metoda Peek(), o działaniu

analogicznym do metody

wykorzystanej w przykładzie kolejki

background image

Stos – przykład

Kod C#

using System;
using System.Collections.Generic;

namespace Stos {
public class Ruch {
static void Main() {
Stack<Int32> Stosik = new Stack<Int32>();
for (int i = 0; i < 4; i++) {
Stosik.Push(i * 5);
}
Console.Write("Wyświetlam stos:\t");
Wyswietl(Stosik);
Console.WriteLine("\n(Pop)\t{0}", Stosik.Pop());
Wyswietl(Stosik);
Console.WriteLine("\n(Peek)\t{0}", Stosik.Peek());
Wyswietl(Stosik);
}
public static void Wyswietl(IEnumerable<Int32> Kolekcja) {
IEnumerator<Int32> licznik = Kolekcja.GetEnumerator();
while (licznik.MoveNext())
Console.Write("{0} ", licznik.Current);
Console.WriteLine();
}
}
}

background image

Słownik

Słownik jest rodzajem kolekcji (klasa

Dictionary), która zawiera wartości

powiązane z kluczami
Słowniki warto stosować zamiast tablic

w sytuacjach, gdy trzeba odwoływać się

do wielu elementów po indeksach – na

przykład przy powiązaniu danej osoby z

numerem rejestracji jej samochodu
Słownik udostępniany przez platformę

.NET umożliwia łączenie dowolnego typu

klucza z dowolnym typem wartości
Przy projektowaniu słownika należy

pamiętać, że klucz powinien być prosty

background image

Podsumowanie

Podstawowe typy kolekcji to tablice,

listy, kolejki, stosy i słowniki
Przed wyborem typu kolekcji warto

zastanowić się, która będzie

najodpowiedniejsza dla

przygotowywanej przez nas aplikacji –

nie zawsze wygodnie jest używać

tablicy
Sprawniejsza obsługa kolekcji jest

możliwa dzięki wykorzystaniu

odpowiednich interfejsów

background image

Pytania sprawdzające

Wymień podstawowe różnice między

kolejką a stosem.
Kiedy lepiej używać tablic zamiast

podanych na bieżących zajęciach

typów kolekcji?

background image

Laboratorium


Document Outline


Wyszukiwarka

Podobne podstrony:
programowanie obiektowe 10, c c++, c#
Programowanie Obiektowe Cwiczenia 10 id 396249
11 10 2011 programowanie obiektowe wykład
Programowanie obiektowe, w7, 10
Wyklad 9-10, uwm wnt Mecha, SM 5, Programowanie obiektowe i strukturalne, Wykłady
Programowanie obiektowe(ćw) 1
Zadanie projekt przychodnia lekarska, Programowanie obiektowe
Programowanie obiektowe w PHP4 i PHP5 11 2005
Programowanie Obiektowe ZadTest Nieznany
Egzamin Programowanie Obiektowe Głowacki, Programowanie Obiektowe
Jezyk C Efektywne programowanie obiektowe cpefpo
Programowanie Obiektowe Ćwiczenia 5
Programowanie obiektowe(cw) 2 i Nieznany
programowanie obiektowe 05, c c++, c#
Intuicyjne podstawy programowania obiektowego0
program EIE 10 ćwiczenia
Programowanie obiektowe, CPP program, 1
wyklad5.cpp, JAVA jest językiem programowania obiektowego

więcej podobnych podstron