26.10: Generička kolekcija: LinkedList
Verovatno
ste pomislili po nazivu da ova generička lista predstavlja listu Internet
linkova; međutim navedena generička kolekcija je sasvim nešto drugo; samo se
zove LinkedList<> i možete je koristiti za kakvu god listu želite.
Uglavnom se retko koristi.
Navedena lista u stvari predstavlja povezanu listu u
koju se brže dodaju i uklanjaju elementi, određene operacije ne zahtevaju da se
cela kolekcija kopira. Međutim, generička kolekcija LinkedList<> je u
mnogim situacijama lošijih perfomansi, posebno se teže koriste sa mnogim
operacijama i petlja foreach će mnogo brže pročitati generičku kolekciju List<>
nego generičku kolekciju LinkedList<> ali recimo da ima neku prednost nad
negeneričkom kolekcijom ArrayList.
Ukoliko imate potrebu da često menjate pozicije elemenata u nizu, onda je ova generička klasa odličan izbor.
U sledećem primeru pogledajte kako se ova lista koristi.
using System;using static System.Console;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;
namespace LinkedListGenericCollection{ class Program { static void Main(string[] args) { LinkedList<string> students = new LinkedList<string>();
WriteLine("Add some students into the collection of students" + Environment.NewLine);
students.AddLast("Manuel Radovanovic"); students.AddLast("Ella Napolis"); students.AddLast("Martine Moore");
Print(students);
WriteLine("Move the student Ella Napolis before Manuel Radovanovic" + Environment.NewLine);
students.Remove("Ella Napolis"); LinkedListNode<string> node = students.Find("Manuel Radovanovic"); students.AddBefore(node, "Ella Napolis");
Print(students);
WriteLine("Add the student Antoinete Amorros on the first postion of students." + Environment.NewLine);
students.AddFirst("Antoinete Amorros");
Print(students);
WriteLine("Add the student Charles Junger after Antoinete Amorros." + Environment.NewLine);
node = students.Find("Antoinete Amorros"); students.AddAfter(node,"Charles Junger");
Print(students);
WriteLine("Press any key to continue..."); ReadKey();
}
static void Print (LinkedList<string> students) { foreach (string student in students) { WriteLine(student);
}
WriteLine(); } }}
Kad pokrenete navedeni program, rezultat će biti sledeći:
Add some students into the collection of students
Manuel Radovanovic
Ella Napolis
Martine Moore
Move the student Ella Napolis before Manuel Radovanovic
Ella Napolis
Manuel Radovanovic
Martine Moore
Add the student Antoinete Amorros on the first postion of students.
Antoinete Amorros
Ella Napolis
Manuel Radovanovic
Martine Moore
Add the student Charles Junger after Antoinete Amorros.
Antoinete Amorros
Charles Junger
Ella Napolis
Manuel Radovanovic
Martine Moore
Press any key to continue...
Kako navedeni program izgleda možete pogledati i na video-u:
( izvor: www.manuelradovanovic.com )
Za one koji žele da znaju više:
posetite:
Generičke liste u C# programskom jeziku
gde ćete da vidite kako se radi sa:
- List<>,
- LinkedList<>,
- SortedList<TKey, TValue>
- Dictionary<TKey, TValue>
- SortedDictionary<TKey, TValue>
- Queue<>
- Stack<>