Úvod do zoznamu vs súbor v C #

Zoznam a množina sú dve z mnohých dátových štruktúr podporovaných C #. Zoznam je abstraktná dátová štruktúra, ktorá je lineárna. Pozostáva z prvkov usporiadaných lineárne. Je možné pridať prvky do zoznamu na rôznych pozíciách. Zoznam má vlastnosť s názvom length (počet prvkov v zozname). V tejto téme sa dozvieme viac o List vs Set.

Poznámka : Buďte opatrní, pretože zoznamy sa líšia od polí. Zoznamy majú premenlivú veľkosť, tj prvky môžu byť pridané do zoznamu, zatiaľ čo polia majú pevnú veľkosť.

Sada je abstraktná dátová štruktúra. Sada má jedinečné prvky a poradie prvkov nie je dôležité. K prvkom v sade nemožno pristupovať prostredníctvom indexov. Prvky samotné sú indexy v množine a ku konkrétnemu prvku sa dá pristupovať pomocou slučky foreach.

Porovnanie medzi jednotlivými zoznamami v sérii (infografika)

Nižšie je uvedených päť najlepších rozdielov medzi zoznamom a množinou

Kľúčové rozdiely

Kľúčové cesty s sebou nasledujú:

  1. Zoznam môže obsahovať duplicitné prvky, zatiaľ čo množina nemôže. Ako množina môže obsahovať iba jedinečné prvky. Ak chcete jedinečné prvky, použite súpravu.
  2. Prvky v zozname sú zoradené, zatiaľ čo poradie nie je dôležité v množine, ale závisí od implementácie množiny.
  3. K prvkom sa pristupuje pomocou indexov v zozname, zatiaľ čo samotné prvky sú indexy v množine. Slučka foreach sa preto používa na prístup k prvkom množiny. Môže sa však tiež použiť na prístup k prvkom zoznamu, ako je uvedené v kóde vyššie uvedeného zoznamu.

Pozrime sa na niektoré z metód rozhraní zoznamu a množiny.

zoznam

Nasleduje niekoľko metód implementovaných rozhraním IList:

  • int Add (element) - pridanie prvku do zoznamu (na konci) a vrátenie hodnoty označujúcej úspešné vloženie.
  • void Insert (int, element) - vloženie prvku na danom mieste v zozname
  • void Clear () - odstránenie všetkých prvkov zo zoznamu
  • bool Obsahuje (prvok) - na kontrolu, či je prvok v zozname prítomný
  • void Remove (element) - odstránenie daného prvku zo zoznamu
  • void RemoveAt (int) - na odstránenie prvku v danej polohe
  • int IndexOf (element) - na vrátenie polohy prvku
  • this (int) - je to indexátor, ktorý umožňuje prístup k prvku na danej pozícii

Nasleduje jeden z príkladov zoznamu:

// C# Program to remove the element at // the specified index of the List using System; using System.Collections.Generic;
class StaticList (
// Main Method public static void Main(String() args)
(
// Creating an List of Integers
List firstlist = new List();
// Adding elements to List firstlist.Add(17); firstlist.Add(19); firstlist.Add(21); firstlist.Add(9); firstlist.Add(75); firstlist.Add(19); firstlist.Add(73);
Console.WriteLine("Elements Present in the List:");
// Displaying the elements of List for(int k=0;k (
Console.Write(firstlist(k)+" ");
)
Console.WriteLine(" ");
// removing the element at index 3
Console.WriteLine("Removing the element at index 3");
// 9 will be removed from the List // and 75 will come at index 3 firstlist.RemoveAt(3);
// Displaying the elements of List foreach(int k in firstlist)
(
Console.Write(k+" ");
)
)
)
// C# Program to remove the element at // the specified index of the List using System; using System.Collections.Generic;
class StaticList (
// Main Method public static void Main(String() args)
(
// Creating an List of Integers
List firstlist = new List();
// Adding elements to List firstlist.Add(17); firstlist.Add(19); firstlist.Add(21); firstlist.Add(9); firstlist.Add(75); firstlist.Add(19); firstlist.Add(73);
Console.WriteLine("Elements Present in the List:");
// Displaying the elements of List for(int k=0;k (
Console.Write(firstlist(k)+" ");
)
Console.WriteLine(" ");
// removing the element at index 3
Console.WriteLine("Removing the element at index 3");
// 9 will be removed from the List // and 75 will come at index 3 firstlist.RemoveAt(3);
// Displaying the elements of List foreach(int k in firstlist)
(
Console.Write(k+" ");
)
)
)

Výkon:

sada

Nasleduje niekoľko metód implementovaných rozhraním ISet:

  • bool Add (element) - Vráti true, ak je prvok pridaný do sady za predpokladu, že nie je prítomný v množine, inak vráti false
  • bool Obsahuje (prvok) - Vracia hodnotu true, ak je prvok už v množine prítomný, inak vracia nepravdivé
  • bool Remove (element) - Vráti true, ak element existuje v množine a dá sa odstrániť, v opačnom prípade vráti false
  • void Clear () - Na odstránenie všetkých prvkov zo sady
  • void IntersectWith (Set other) - Nájde priesečník 2 sád (tých prvkov, ktoré sa vyskytujú v oboch množinách), množinu, na ktorú je metóda volaná, a druhú množinu, ktorá je odovzdaná ako parameter.
  • void UnionWith (Set other) - Nájde spojenie 2 množín (všetky prvky v oboch množinách), množinu, na ktorú je metóda volaná, a druhú množinu, ktorá je odovzdaná ako parameter.
  • bool IsSubsetOf (Set other) - Vráti true, ak je množina (na ktorej je volaná metóda) podmnožinou druhej sady odovzdanej ako parameter, inak vráti false
  • bool IsSupersetOf (Set other) - Vráti true, ak je množina (na ktorej je volaná metóda) nadmnožinou druhej sady odovzdanej ako parameter, inak vráti false
  • int Count - Vráti počet prvkov v množine

Nasleduje jeden z príkladov sady:

using System;
using System.Collections.Generic;
class HS (
// Driver code
public static void Main()
(
// Creating a HashSet of odd numbers
HashSet odd = new HashSet();
// Inserting elements in HashSet for (int i = 0; i < 5; i++) ( odd.Add(2 * i + 1);
)
Console.WriteLine("Elements in the HashSet:"); // Displaying the elements in the HashSet
foreach(int i in odd)
(
Console.Write(i+" ");
)
Console.WriteLine("\nTotal elements in the HashSet = "+odd.Count);
Console.WriteLine("Is it possible to remove 7? : "+odd.Remove(7));
Console.WriteLine("New HashSet = ");
foreach(int i in odd)
(
Console.Write(i+" ");
)
)
)

Výkon:

Porovnávacia tabuľka medzi Zoznamom a Setom

Nasledujúca tabuľka zobrazuje rozdiel medzi zoznamom a sadou:

zoznamsada
1. Môže obsahovať duplicitné prvky1. Prvky musia byť jedinečné
2. Poradie prvkov je dôležité2. Poradie prvkov nie je dôležité, ale závisí od vykonávania
3. K prvkom sa pristupuje pomocou indexu3. Samotné prvky sú indexy
4. Rozhranie použité na implementáciu zoznamu je System.Collections.IList4. Rozhranie použité na implementáciu sady je System.Collections.ISet
5. Zoznam je implementovaný ako statický zoznam (pomocou poľa) a dynamický zoznam (prepojený zoznam).5. Množiny sú implementované ako hashset (hashtable) a triedené sady (červeno-čierny strom)

Odporúčané články

Toto je sprievodca zoznamom verzií set. Tu sme diskutovali o Zozname proti kľúčovým rozdielom s informačnou a porovnávacou tabuľkou. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. C # Zoznam vs Array
  2. C # Array vs List
  3. C # Funkcie
  4. C # Príkazy

Kategórie: