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:
- 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.
- 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.
- 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:
Lista | Készlet |
1. Ismétlődő elemeket tartalmazhat | 1. Az elemeknek egyedinek kell lenniük |
2. Az elemek sorrendje fontos | 2. Az elemek sorrendje nem fontos, de a megvalósítástól függ |
3. Az elemekhez indexeléssel lehet hozzáférni | 3. Maguk az elemek indexek |
4. A lista megvalósításához használt felület a System.Collections.IList | 4. 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 -
- C # lista vs tömb
- C # tömb vs lista
- C # Funkciók
- C # parancsok