Uvod u popis vs postavljen u C #

Popis i skup dvije su od mnogih struktura podataka koje podržava C #. Popis je apstraktna struktura podataka koja je linearna. Sastoji se od elemenata linearno raspoređenih. Na popis je moguće dodati elemente na različitim pozicijama. Popis ima svojstvo koje se naziva duljina (broj elemenata u popisu). U ovoj ćemo temi naučiti o Listu protiv Set-a.

Napomena : Budite oprezni jer su popisi različiti od nizova. Popisi imaju promjenjivu veličinu, tj. Elementi se mogu dodati u popis, dok nizovi imaju fiksnu veličinu.

Skup je apstraktna struktura podataka. Set ima jedinstvene elemente i redoslijed elemenata nije važan. Ne može se pristupiti elementima u skupu putem indeksa. Sami elementi su indeksi u skupu i određenom elementu može se pristupiti pomoću petlje foreach.

Usporedba između popisa i skupa (Infographics)

Ispod je top 5 razlike između Popisa i Postavljanja

Ključne razlike

Slijede ključni postupci:

  1. Popis može sadržavati duplikat elemenata dok skup ne može, jer skup može imati samo jedinstvene elemente. Stoga koristite set ako želite jedinstvene elemente.
  2. Elementi na popisu su poredani, dok redoslijed nije važan u skupu, ali ovisi o provedbi skupa.
  3. Elementima se pristupa pomoću indeksa na popisu, dok su sami elementi indeksi u skupu. Zbog toga se petlja predigle koristi za pristup elementima skupa. No može se koristiti i za pristup elementima popisa kao što je prikazano u kodu popisa iznad.

Pogledajmo neke od metoda sučelja popisa i skupa.

Popis

Evo nekih metoda koje implementira IList sučelje:

  • int Add (element) - za dodavanje elementa na popis (na kraju) i za vraćanje vrijednosti koja ukazuje na uspješno umetanje.
  • void Insert (int, element) - za umetanje elementa na danoj poziciji na popisu
  • void Clear () - za uklanjanje svih elemenata s popisa
  • bool Sadrži (element) - za provjeru je li element prisutan na popisu
  • void Remove (element) - za uklanjanje zadanog elementa s popisa
  • void RemoveAt (int) - za uklanjanje elementa na zadanom položaju
  • int IndexOf (element) - za vraćanje položaja elementa
  • this (int) - to je indeksator koji omogućava pristup elementu na zadanoj poziciji

Slijedi jedan od primjera koda za popis:

// 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+" ");
)
)
)

Izlaz:

set

Evo nekih metoda koje implementira ISet sučelje:

  • bool Add (element) - Vraća true ako je element dodan skupu pod uvjetom da nije prisutan u skupu else vraća false
  • bool Sadrži (element) - Vraća true ako je element već prisutan u skupu, u suprotnom vraća false
  • bool Remove (element) - Vraća true ako element postoji u skupu i može ga se ukloniti
  • praznina Clear () - Za uklanjanje svih elemenata iz skupa
  • void IntersectWith (Set other) - Pronalazi sjecište dva skupa (onih elemenata koji se pojavljuju u oba skupa), skupa na kojem se zove metoda i drugog skupa koji se prosljeđuje kao parametar.
  • void UnionWith (Set other) - Pronalazi sjedinjenje 2 skupa (svi elementi u oba skupa), skupa na koji se poziva metoda i drugog skupa koji se prosljeđuje kao parametar.
  • bool IsSubsetOf (Set other) - Vraća true ako je skup (kojim se metoda zove) podskup drugog skupa proslijeđen kao parametar, Inače vraća false
  • bool IsSupersetOf (Set other) - Vraća true ako je skup (kojim se metoda zove) superset drugog skupa proslijeđenog kao parametar, inače vraća false
  • int Count - Vraća broj elemenata u skupu

Slijedi jedan od primjera koda za skup:

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+" ");
)
)
)

Izlaz:

Tablica usporedbe između Popisa i skupa

Sljedeća tablica prikazuje razliku između popisa i skupa:

Popisset
1. Može sadržavati dvostruke elemente1. Elementi moraju biti jedinstveni
2. Redoslijed elemenata je važan2. Redoslijed elemenata nije važan, ali ovisi o provedbi
3. Elementima se pristupa pomoću indeksa3. Sami elementi su indeksi
4. Sučelje koje se koristi za implementaciju popisa je System.Collections.IList4. Sučelje koje se koristi za implementaciju skupa je System.Collections.ISet
5. Popis se implementira kao statički popis (koristeći niz) i dinamički popis (povezani popis)5. setovi se implementiraju kao hashset (hashtable) i razvrstani skup (crveno-crno stablo)

Preporučeni članci

Ovo je vodič za List vs Set. Ovdje smo razgovarali o Popisu i Postavljanju ključnih razlika s infografikom i tablicom usporedbe. Možete također pogledati sljedeće članke da biste saznali više -

  1. Popis C # u nizu
  2. C # niz prema popisu
  3. C # funkcije
  4. C # naredbe

Kategorija: