Sissejuhatus loendisse vs komplekti C #

Loend ja komplekt on kaks paljudest andmestruktuuridest, mida C # toetab. Loend on abstraktne andmestruktuur, mis on lineaarne. See koosneb lineaarselt paigutatud elementidest. Loendisse on võimalik elemente lisada erinevatel kohtadel. Loendil on omadus nimega pikkus (elementide arv loendis). Selles teemas õpime lähemalt loendist vs komplekti.

Märkus . Olge ettevaatlik, kuna loendid erinevad massiividest. Loenditel on erinev suurus, st elemente saab loendile lisada, kui massiivid on kindla suurusega.

Komplekt on abstraktne andmestruktuur. Komplektil on ainulaadsed elemendid ja elementide järjekord pole oluline. Komplekti elementidele pole indekside kaudu juurde pääseda. Elemendid ise on komplekti indeksid ja konkreetsele elemendile pääseb juurde foreachi silmuse abil.

Võrdlus loendi ja komplekti vahel (infograafika)

Allpool on toodud 5 peamist erinevust loendi ja komplekti vahel

Peamised erinevused

Järgnevalt on ära toodud peamised kaasavõtmised:

  1. Loend võib sisaldada dubleerivaid elemente, samas kui komplekt ei saa, kuna komplekt võib sisaldada ainult unikaalseid elemente. Nii et kasutage komplekti, kui soovite ainulaadseid elemente.
  2. Loendis olevad elemendid tellitakse, kui järjekord pole komplektis oluline, kuid see sõltub komplekti rakendamisest.
  3. Elementide juurde pääseb loendis olevate indeksite abil, samal ajal kui elemendid ise on komplekti indeksid. Seetõttu kasutatakse komplekti elementide juurde pääsemiseks foreach silmust. Kuid seda saab kasutada ka loendi elementide juurde pääsemiseks, nagu on näidatud ülaltoodud loendi koodis.

Vaatame mõnda loetelu ja liidese liideste meetodit.

Loend

Järgnevalt on toodud mõned IListi liidese rakendatud meetodid:

  • int Add (element) - elemendi lisamiseks loendisse (lõpus) ​​ja edukale sisestamisele vastava väärtuse tagastamiseks.
  • void Insert (int, element) - elemendi lisamiseks loendis antud kohta
  • void Clear () - kõigi elementide eemaldamiseks loendist
  • bool Contains (element) - et kontrollida, kas element on loendis olemas
  • void Eemalda (element) - antud elemendi eemaldamiseks loendist
  • void RemoveAt (int) - elemendi eemaldamiseks etteantud asukohas
  • int IndexOf (element) - elemendi positsiooni tagastamiseks
  • see (int) - see on indekseerija, mis võimaldab juurdepääsu antud positsiooni elemendile

Järgnev on loetelu üks näidiskood:

// 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äljund:

Komplekt

Järgnevalt on toodud mõned ISet-liidese rakendatud meetodid:

  • bool Add (element) - tagastab true, kui element lisatakse komplekti, kui seda komplektis pole, vastasel juhul tagastatakse false
  • bool Contains (element) - tagastab tõese, kui element on juba komplektis olemas, vastasel juhul tagastab see vale
  • bool Eemalda (element) - tagastab tõese, kui element on komplektis olemas ja selle saab eemaldada, tagastab vale
  • void Clear () - kõigi elementide eemaldamiseks komplektist
  • void IntersectWith (muu komplekt) - see leiab 2 komplekti (need elemendid, mis esinevad mõlemas komplektis) ristumise, komplekti, millel meetodit kutsutakse, ja teise komplekti, mis edastatakse parameetrina.
  • void UnionWith (Set other) - see leiab 2 komplekti (kõik elemendid mõlemas komplektis), komplekti, mille jaoks meetodit kutsutakse, ja teise komplekti, mis edastatakse parameetrina.
  • bool IsSubsetOf (Set other) - tagastab tõese, kui komplekt (millele meetodit kutsutakse) on parameetrina edastatud teise komplekti alamhulk, vastasel juhul tagastab false
  • bool IsSupersetOf (Set other) - tagastab tõese, kui komplekt (millele meetodit kutsutakse) on teise parameetrina edastatud komplekti ülempiir, vastasel juhul tagastab false
  • int Count - tagastab komplektis olevate elementide arvu

Järgnev on üks komplekti näidiskoodidest:

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äljund:

Võrdlustabel nimekirja vs komplekti vahel

Järgmine tabel illustreerib loetelu ja komplekti erinevust:

LoendKomplekt
1. Võib sisaldada dubleerivaid elemente1. Elemendid peavad olema kordumatud
2. Elementide järjekord on oluline2. Elementide järjekord pole oluline, kuid see sõltub rakendamisest
3. Elementide juurde pääseb indeksi abil3. Elemendid ise on indeksid
4. Loendi rakendamiseks kasutatakse liidest System.Collections.IList4. Komplekti rakendamiseks kasutatakse liidest System.Collections.ISet
5. Loend rakendatakse staatilise loendina (massiivi kasutades) ja dünaamilisena loendina (lingitud loend)5. Komplektid rakendatakse hashset (hashtable) ja sorteeritud komplektina (punane-must puupõhine)

Soovitatavad artiklid

See on juhend loendist vs komplekt. Siin on arutatud loendit vs peamiste erinevuste loendit infograafika ja võrdlustabeliga. Võite lisateabe saamiseks vaadata ka järgmisi artikleid -

  1. C # loend vs massiiv
  2. C # massiiv vs nimekiri
  3. C # funktsioonid
  4. C # käsud

Kategooria: