Bevezetés a Lista és a C # készletbe

A List és a Set a C # által támogatott sok adatszerkezet közül kettő. A lista egy lineáris absztrakt adatszerkezet. Lineárisan elrendezett elemekből áll. Elemeket fel lehet venni a listába különböző pozíciókban. A lista tulajdonságának neve hossza (a listában szereplő elemek száma). Ebben a témában megismerjük a Lista vs Készlet elemet.

Megjegyzés : Legyen óvatos, mivel a listák különböznek a tömböktől. A listák változó méretűek, azaz az elemek csatolhatók a listához, míg a tömbök rögzített méretűek.

A halmaz egy absztrakt adatstruktúra. A készlet egyedi elemekkel rendelkezik, és az elemek sorrendje nem fontos. A készlet elemei nem érhetők el indexek segítségével. Maguk az elemek indexek a készletben, és egy adott elemhez foreach hurok segítségével lehet hozzáférni.

Összehasonlítás a fej és a fej között a lista és a készlet között (infographics)

Az alábbiakban bemutatjuk a lista 5 és a lista közötti öt legfontosabb különbséget

Főbb különbségek

Az alábbiakban látható a legfontosabb elvitel:

  1. A lista ismétlődő elemeket tartalmazhat, míg a készlet nem, mivel a halmaz csak egyedi elemekkel rendelkezik. Tehát használja a set-et, ha egyedi elemeket akar.
  2. A listában szereplő elemeket úgy rendezik, hogy a sorrend nem fontos egy készletben, de ez a készlet megvalósításától függ.
  3. Az elemekhez a listában szereplő indexekkel lehet hozzáférni, míg az elemek maguk az indexek a készletben. Ezért az foreach hurkot használják a készlet elemeihez való hozzáféréshez. Ugyanakkor felhasználható a lista elemeinek elérésére is, amint azt a fenti lista kódja mutatja.

Nézzük meg a lista interfészeinek néhány módszerét, és állítsuk be.

Lista

Az alábbiakban bemutatunk néhány módszert, amelyet az IList interfész valósított meg:

  • int Add (elem) - az elem hozzáfűzéséhez a listához (a végén), és egy eredmény visszaadását jelző érték visszaadására.
  • void Insert (int, element) - az elem beszúrása a listában az adott pozícióba
  • void Clear () - az összes elem eltávolításához a listából
  • bool Tartalmaz (elem) - annak ellenőrzése, hogy az elem van-e a listában
  • void Eltávolítás (elem) - az adott elem eltávolításához a listáról
  • void RemoveAt (int) - az elem eltávolításához az adott pozícióban
  • int IndexOf (elem) - az elem helyzetének visszaadása
  • this (int) - egy indexelő, amely lehetővé teszi az elem elérését az adott pozícióban

Az alábbiakban bemutatjuk a lista egyik példakódját:

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

Kimenet:

Készlet

Az alábbiakban bemutatjuk az ISet interfész által végrehajtott néhány módszert:

  • bool Add (elem) - Igazos, ha az elem hozzáadódik a halmazhoz, ha az nem szerepel a halmazban, akkor hamis eredményt ad
  • bool Tartalmaz (elem) - Igazát adja, ha az elem már van a készletben, hamis értéket ad vissza
  • bool Eltávolítás (elem) - True értékre ad visszaadást, ha az elem létezik a készletben, és eltávolítható
  • void Clear () - Az összes elem eltávolításához a készletből
  • void IntersectWith (Más készlet) - Megtalálja 2 halmaz metszetét (azok az elemek, amelyek mindkét halmazban előfordulnak), a halmazt, amelyen a módszert meghívják, és a másik halmazt, amelyet paraméterként adnak át.
  • void UnionWith (Set other) - Megtalálja a 2 hal ( mindkét halmaz minden eleme) egységét, a halmazt, amelyen a módszert meghívják, és a másik halmazt, amelyet paraméterként adnak át.
  • bool IsSubsetOf (Set other) - True értékre ad visszaadást, ha a halmaz (amelyre a módszert nevezik) egy másik paraméterként átadott hal halmaza, hamis hamis értéket ad vissza
  • bool IsSupersetOf (Set other) - True értékre ad visszaadást, ha a halmaz (amelyre a módszert nevezik) egy másik paraméterként átadott halmaz szuperhalmaza, hamis hamis értéket ad vissza
  • int Count - Visszaadja az elemek számát a készletben

Az alábbiakban bemutatjuk a készlet egyik példakódját:

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

Kimenet:

Összehasonlító táblázat a Lista és a Set között

Az alábbi táblázat szemlélteti a lista és a készlet közötti különbséget:

ListaKészlet
1. Ismétlődő elemeket tartalmazhat1. Az elemeknek egyedinek kell lenniük
2. Az elemek sorrendje fontos2. Az elemek sorrendje nem fontos, de a megvalósítástól függ
3. Az elemekhez indexeléssel lehet hozzáférni3. Maguk az elemek indexek
4. A lista megvalósításához használt felület a System.Collections.IList4. A készlet megvalósításához a System.Collections.ISet felületet kell használni
5. A lista statikus listaként (tömb használatával) és dinamikus listaként (csatolt lista) valósul meg.5. A készleteket hashset (hashtable) és rendezett halmazként (vörös-fekete fa alapú) valósítják meg.

Ajánlott cikkek

Ez egy útmutató a Lista vs. Itt tárgyaltuk a Lista vs. alapvető különbségek listáját az infographics és az összehasonlító táblázat segítségével. Lehet, hogy megnézi a következő cikkeket is, ha többet szeretne megtudni -

  1. C # lista vs tömb
  2. C # tömb vs lista
  3. C # Funkciók
  4. C # parancsok

Kategória: