Johdanto C: n luettelo vs. joukkoon

Lista ja Joukko ovat kaksi monista tietorakenteista, joita C # tukee. Lista on abstrakti tietorakenne, joka on lineaarinen. Se koostuu lineaarisesti järjestetyistä elementeistä. Elementtejä on mahdollista lisätä luetteloon eri kohdissa. Luettelossa on ominaisuus nimeltään pituus (luettelossa olevien elementtien lukumäärä). Tässä aiheessa aiomme oppia luettelosta vs. joukosta.

Huomaa : Ole varovainen, koska luettelot eroavat taulukoista. Listat ovat kooltaan vaihtelevia, ts. Elementtejä voidaan lisätä luetteloon, kun taulukot ovat kiinteitä.

Joukko on abstrakti tietorakenne. Sarjassa on ainutlaatuisia elementtejä ja elementtien järjestys ei ole tärkeä. Sarjan elementeihin ei voida päästä indeksien kautta. Elementit itsessään ovat sarjan indeksejä ja tiettyyn elementtiin pääsee foreach-silmukan avulla.

Head to Head -vertailu luettelon ja sarjan välillä (infografia)

Alla on 5 tärkeintä eroa luettelon ja sarjan välillä

Keskeiset erot

Seuraavat ovat tärkeimmät takeaways:

  1. Lista voi sisältää päällekkäisiä elementtejä, kun taas joukko ei voi, koska ryhmässä voi olla vain ainutlaatuisia elementtejä. Joten käytä set, jos haluat ainutlaatuisia elementtejä.
  2. Luettelon elementit tilataan, vaikka järjestys ei ole tärkeä sarjassa, mutta se riippuu sarjan toteutuksesta.
  3. Elementteihin päästään käyttämällä luettelon indeksejä, kun taas elementit itsessään ovat sarjan indeksejä. Siksi etusilmukkaa käytetään pääsemään sarjan elementteihin. Sitä voidaan kuitenkin käyttää myös luettelon elementtien käyttämiseen yllä olevan luettelon koodin mukaisesti.

Katsotaanpa joitain menetelmiä luettelon rajapintoihin ja asetettuihin.

Lista

Seuraavassa on joitain IList-käyttöliittymän toteuttamista menetelmistä:

  • int Lisää (elementti) - lisää elementin luetteloon (lopussa) ja palauttaa onnistuneen lisäyksen osoittavan arvon.
  • void Insert (int, element) - lisätäksesi elementin luetteloon annettuun kohtaan
  • void Tyhjennä () - poistaa kaikki elementit luettelosta
  • bool Contains (element) - tarkistaa onko elementti luettelossa
  • void Poista (elementti) - poistaa tietyn elementin luettelosta
  • void RemoveAt (int) - elementin poistamiseksi annetusta kohdasta
  • int IndexOf (element) - palauttaa elementin sijainnin
  • tämä (int) - se on indeksoija, joka antaa pääsyn elementtiin tietyssä sijainnissa

Seuraava on yksi luettelon esimerkkikoodista:

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

lähtö:

Aseta

Seuraavassa on joitain ISet-käyttöliittymän toteuttamista menetelmistä:

  • bool Add (element) - Palauttaa true, jos elementti lisätään joukkoon, mikäli sitä ei ole joukossa, muutoin palauttaa väärän
  • bool Contents (element) - Palauttaa true, jos elementti on jo läsnä joukossa, muuten se palauttaa false
  • bool Poista (elementti) - Palauttaa true, jos elementti on joukossa ja voidaan poistaa, palauttaa väärän
  • void Tyhjennä () - Voit poistaa kaikki elementit sarjasta
  • void IntersectWith (Set other) - Se löytää 2 joukon (ne elementit, jotka esiintyvät molemmissa sarjoissa) leikkauksen, joukon, jolle menetelmää kutsutaan, ja toisen joukon, joka välitetään parametrina.
  • void UnionWith (Set other) - Se löytää 2 joukon (kaikki elementit molemmissa sarjoissa), joukon, jolle menetelmää kutsutaan, ja toisen joukon, joka välitetään parametrina.
  • bool IsSubsetOf (Aseta muu) - Palauttaa arvon true, jos joukko (johon menetelmää kutsutaan) on parametrina siirretyn toisen joukon osajoukko, muuten palauttaa väärän
  • bool IsSupersetOf (Set other) - Palauttaa arvon true, jos joukko (johon menetelmää kutsutaan) on toisen parametrina siirretyn joukon yläjoukko, muuten palauttaa väärän
  • int Count - Palauttaa sarjan elementtien määrän

Seuraava on yksi sarjan esimerkkikoodista:

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

lähtö:

Vertailutaulukko Lista vs.

Seuraava taulukko kuvaa eroa luettelon ja joukon välillä:

ListaAseta
1. Voi sisältää päällekkäisiä elementtejä1. Elementtien on oltava ainutlaatuisia
2. Alkijärjestys on tärkeä2. Alkijärjestys ei ole tärkeä, mutta se riippuu toteutuksesta
3. Elementteihin päästään hakemistolla3. Elementit ovat itse indeksejä
4. Luettelon toteuttamiseen käytetty rajapinta on System.Collections.IList4. Sarjan toteuttamiseen käytetty rajapinta on System.Collections.ISet
5. Lista toteutetaan staattisena luettelona (matriisin avulla) ja dynaamisena luettelona (linkitetty luettelo)5. Sarjat toteutetaan hashset (hashtable) ja lajiteltu joukko (red-black tree-based)

Suositellut artikkelit

Tämä on opas Lista vs. Tässä olemme keskustelleet Lista vs. Aseta tärkeimmät erot infografisten ja vertailutaulukoiden kanssa. Saatat myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. C # Lista vs Array
  2. C # taulukko vs. luettelo
  3. C # toiminnot
  4. C # komennot