Uvod

Do sada smo učili kako se koriste nizovi – strukture podataka koje čuvaju više vrednosti istog tipa. Nizovi su veoma važni, ali imaju svoja ograničenja. Na primer:

  • Njihova dužina se mora unapred odrediti i ne može se kasnije menjati.

  • Kada želimo da dodamo novi element, često moramo praviti novi niz.

U objektno-orijentisanim jezicima, kao što je C#, postoje fleksibilnije strukture za čuvanje podataka. Jedna od najvažnijih je lista (List).

Lista se ponaša slično nizu, ali joj dužina nije unapred fiksirana – možemo dodavati i uklanjati elemente u toku rada programa.


1. čas :  Osnovna upotreba lista

Da bismo koristili liste u C#, potrebno je da uključimo prostor imena System.Collections.Generic:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> brojevi = new List<int>(); // kreiranje prazne liste celih brojeva
    }
}
Dodavanje elemenata (Add)
List<int> brojevi = new List<int>();
brojevi.Add(10);
brojevi.Add(20);
brojevi.Add(30);

Console.WriteLine("Lista sadrži:");
foreach (int broj in brojevi)
{
    Console.WriteLine(broj);
}

Rezultat:

10
20
30
Umetanje na određeno mesto (Insert)
brojevi.Insert(1, 15); // na poziciju 1 ubacujemo broj 15

Lista sada izgleda: 10, 15, 20, 30

Uklanjanje elemenata (Remove i RemoveAt)
brojevi.Remove(20);     // uklanja element 20
brojevi.RemoveAt(0);    // uklanja element na indeksu 0 (prvi element)
Brojanje elemenata (Count)
Console.WriteLine("Ukupno elemenata: " + brojevi.Count);

Zadatak br 1

Napisati program koji omogućava unos 5 brojeva u listu, zatim:

  1. Ispisuje sve brojeve iz liste.

  2. Dodaje broj 100 na kraj liste.

  3. Uklanja drugi element.

  4. Ispisuje koliko elemenata lista sadrži.


Rešenje zadatka 1

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> lista = new List<int>();

        for (int i = 0; i < 5; i++)
        {
            Console.Write("Unesite broj: ");
            int x = int.Parse(Console.ReadLine());
            lista.Add(x);
        }

        Console.WriteLine("Sadržaj liste:");
        foreach (int broj in lista)
            Console.Write(broj + " ");

        lista.Add(100);
        lista.RemoveAt(1);

        Console.WriteLine("\nPosle izmena:");
        foreach (int broj in lista)
            Console.Write(broj + " ");

        Console.WriteLine("\nUkupno elemenata: " + lista.Count);
    }
}

2. čas : Metode za rad sa listama

Sortiranje (Sort)
List<int> brojevi = new List<int> { 5, 2, 8, 1, 9 };
brojevi.Sort();

Console.WriteLine("Sortirana lista:");
foreach (int broj in brojevi)
    Console.WriteLine(broj);

Rezultat:

1
2
5
8
9
Provera da li lista sadrži element (Contains)
if (brojevi.Contains(5))
    Console.WriteLine("Lista sadrži broj 5");
else
    Console.WriteLine("Broj 5 nije u listi");
Brisanje svih elemenata (Clear)
brojevi.Clear();
Console.WriteLine("Posle Clear metoda lista ima: " + brojevi.Count + " elemenata.");

Zadatak br 2

Napisati program koji:

  1. Omogućava unos proizvoljnog broja imena (koristiti while petlju – prekida se kada se unese prazno ime).

  2. Sortira imena i ispisuje ih.

  3. Proverava da li se ime "Marko" nalazi u listi.

  4. Briše sve elemente i ispisuje koliko elemenata lista sada ima.


Rešenje zadatka 2

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> imena = new List<string>();
        string unos;

        while (true)
        {
            Console.Write("Unesite ime (ENTER za kraj): ");
            unos = Console.ReadLine();

            if (unos == "") break;
            imena.Add(unos);
        }

        imena.Sort();

        Console.WriteLine("Sortirana imena:");
        foreach (string ime in imena)
            Console.WriteLine(ime);

        if (imena.Contains("Marko"))
            Console.WriteLine("Ime Marko se nalazi u listi.");
        else
            Console.WriteLine("Ime Marko se ne nalazi u listi.");

        imena.Clear();
        Console.WriteLine("Posle Clear, lista ima " + imena.Count + " elemenata.");
    }
}

Zaključak
  • Liste su fleksibilnije od nizova jer omogućavaju dodavanje i uklanjanje elemenata u toku rada programa.

  • Osnovne metode koje se koriste su: Add, Remove, Insert, Count.

  • Dodatne metode omogućavaju rad sa podacima: Sort, Contains, Clear.

  • Kroz liste učenici mogu razvijati intuitivnije programe i lakše manipulisati podacima.


--


Dodatak:

   Ovde možete vežbati rad sa listama (LINK)

Poslednja izmena: петак, 3. октобар 2025, 18:08