Programuojant sąrašai ir masyvai yra duomenų struktūros, naudojamos duomenims tvarkyti ir saugoti. Abi turi savo unikalių savybių ir tikslų. Sąrašai yra dinamiškas ir lankstus , leidžianti lengvai keisti dydį vykdymo metu masyvai yra statinis su fiksuoto dydžio . Šis skirtumas turi įtakos atminties naudojimui ir našumui.
Turinys
- Kas yra sąrašai?
- Kas yra masyvai?
- Skirtumas tarp sąrašų ir masyvų
- Sąrašų įgyvendinimas
- Masyvų įgyvendinimas
Kas yra sąrašai?
Sąrašai yra universali programavimo duomenų struktūra, skirta elementų rinkiniui, kurį galima lanksčiai tvarkyti. skirtingi duomenų tipai . Skirtingai nuo masyvų, sąrašai yra dinamiškas , tai reiškia, kad jų dydis gali keistis vykdant programą. Dėl šio pritaikomumo sąrašai ypač naudingi atliekant užduotis, susijusias su elementų pridėjimu arba pašalinimu. Sąrašai suteikia kūrėjams patogią sąsają duomenims valdyti ir tvarkyti, todėl galima efektyviai atlikti tokias operacijas kaip pridedant , įterpiant , arba ištrynimas elementai. Galimybė dinamiškai koreguoti jų dydį daro sąrašus galingu įrankiu įvairiems duomenų kiekiams programoje tvarkyti.
Kas yra masyvai?
Masyvai yra pagrindinė programavimo duomenų struktūra, leidžianti saugoti elementų rinkinį to paties tipo duomenų gretimoje atminties bloke. Kiekvienas masyvo elementas identifikuojamas pagal indeksą, nurodantį jo padėtį. Pagrindinė masyvų savybė yra ta, kad naudojant šiuos indeksus jie siūlo greitą ir tiesioginę prieigą prie elementų. Jie suteikia sistemingą būdą tvarkyti ir valdyti duomenis, todėl jie yra veiksmingi atgauti , modifikuoti , ir manipuliuoti masyve saugoma informacija. Masyvai yra plačiai naudojami įvairiose programavimo kalbose dėl jų paprastumo ir efektyvumo tvarkant užsakytus duomenų rinkinius.
Skirtumas tarp sąrašų ir masyvų:
| Aspektas | Masyvai | Sąrašai |
|---|---|---|
| Dydis | Masyvai turi fiksuotą dydį, nustatytą kūrimo metu. | Sąrašai yra dinamiški ir gali keistis vykdymo metu. |
| Duomenų tipai | Visi masyvo elementai turi būti to paties tipo duomenų. | Sąrašai gali talpinti skirtingų duomenų tipų elementus. |
| Atminties paskirstymas | Inicijavimo metu viso masyvo atmintis paskirstoma iš karto. | Sąrašai dinamiškai paskirsto atmintį, kai elementai pridedami arba pašalinami. |
| Prieigos laikas | Masyvai suteikia nuolatinę prieigą prie elementų indeksuodami. | Sąrašų prieigos laikas gali šiek tiek skirtis dėl dinaminio dydžio keitimo. |
| Lankstumas | Masyvai yra mažiau lankstūs, nes jų dydžio negalima lengvai pakeisti. | Sąrašai yra lankstesni, todėl galima lengvai pridėti arba pašalinti elementus. |
| Atminties efektyvumas Moore mašinos pavyzdžiai | Gali išeikvoti atmintį, jei dydis didesnis nei būtina. | Dėl dinaminio paskirstymo taupo atmintį. |
| Bendrieji įgyvendinimai | Įprasta tokiomis kalbomis kaip C/C++. | Įprasta tokiomis kalbomis kaip Python ir Java. |
Sąrašų įgyvendinimas:
Pateiktame Python kodo pavyzdyje sąrašas inicijuojamas, kad būtų saugomi sveikieji skaičiai (10, 20, 30). Elementai pridedami, pasiekiami naudojant indeksą, modifikuojami ir pašalinami. „Python“ pridėjimui naudojamas pridėjimo metodas, o ištrynimui – pašalinti. Pavyzdyje parodomos pagrindinės sąrašų kūrimo, keitimo ir valdymo šiomis programavimo kalbomis operacijos.
C++
#include> #include> int> main() {> >// Creating an empty vector> >std::vector<>int>>myArray;> >// Adding elements to the vector> >myArray.push_back(10);> >myArray.push_back(20);> >myArray.push_back(30);> >// Displaying the elements in the vector> >std::cout <<>'Elements in the vector: '>;> >for> (>int> num : myArray) {> >std::cout << num <<>' '>;> >}> >std::cout << std::endl;> >// Accessing elements by index> >int> firstElement = myArray[0];> >int> secondElement = myArray[1];> >// Modifying an element> >myArray[1] = 25;> >// Removing an element by value> >for> (>auto> it = myArray.begin(); it != myArray.end(); ++it) {> >if> (*it == 30) {> >myArray.erase(it);> >break>;> >}> >}> >// Displaying the updated vector> >std::cout <<>'Updated vector: '>;> >for> (>int> num : myArray) {> >std::cout << num <<>' '>;> >}> >std::cout << std::endl;> >return> 0;> }> // This code is contributed by shivamgupta0987654321> |
>
>
Java
import> java.util.ArrayList;> import> java.util.Iterator;> public> class> Main {> >public> static> void> main(String[] args)> >{> >// Creating an empty ArrayList> >ArrayList myArray =>new> ArrayList();> >// Adding elements to the ArrayList> >myArray.add(>10>);> >myArray.add(>20>);> >myArray.add(>30>);> >// Displaying the elements in the ArrayList> >System.out.print(>'Elements in the ArrayList: '>);> >for> (>int> num : myArray) {> >System.out.print(num +>' '>);> >}> >System.out.println();> >// Accessing elements by index> >int> firstElement = myArray.get(>0>);> >int> secondElement = myArray.get(>1>);> >// Modifying an element> >myArray.set(>1>,>25>);> >// Removing an element by value> >Iterator iterator = myArray.iterator();> >while> (iterator.hasNext()) {> >int> element = iterator.next();> >if> (element ==>30>) {> >iterator.remove();> >break>;> >}> >}> >// Displaying the updated ArrayList> >System.out.print(>'Updated ArrayList: '>);> >for> (>int> num : myArray) {> >System.out.print(num +>' '>);> >}> >System.out.println();> >}> }> |
>
>
Python3
# Creating an empty list> my_list>=> []> # Adding elements to the list> my_list.append(>10>)> my_list.append(>20>)> my_list.append(>30>)> # Displaying the elements in the list> print>('Elements>in> the>list>:', my_list)> # Accessing elements by index> first_element>=> my_list[>0>]> second_element>=> my_list[>1>]> # Modifying an element> my_list[>1>]>=> 25> # Removing an element> my_list.remove(>30>)> # Displaying the updated list> print>('Updated>list>:', my_list)> |
>
>
C#
using> System;> using> System.Collections.Generic;> class> Program> {> >static> void> Main()> >{> >// Creating an empty list> >List<>int>>myArray =>>int>>();> >// Adding elements to the list> >myArray.Add(10);> >myArray.Add(20);> >myArray.Add(30);> >// Displaying the elements in the list> >Console.Write(>'Elements in the list: '>);> >foreach> (>int> num>in> myArray)> >{> >Console.Write(num +>' '>);> >}> >Console.WriteLine();> >// Accessing elements by index> >int> firstElement = myArray[0];> >int> secondElement = myArray[1];> >// Modifying an element> >myArray[1] = 25;> >// Removing an element by value> >for> (>int> i = 0; i { if (myArray[i] == 30) { myArray.RemoveAt(i); break; } } // Displaying the updated list Console.Write('Updated list: '); foreach (int num in myArray) { Console.Write(num + ' '); } Console.WriteLine(); } }> |
>
>
Javascript
// Creating an empty array> let myArray = [];> // Adding elements to the array> myArray.push(10);> myArray.push(20);> myArray.push(30);> // Displaying the elements in the array> console.log(>'Elements in the array:'>, myArray);> // Accessing elements by index> let firstElement = myArray[0];> let secondElement = myArray[1];> // Modifying an element> myArray[1] = 25;> // Removing an element (in this case, removing by value)> let indexToRemove = myArray.indexOf(30);> if> (indexToRemove !== -1) {> >myArray.splice(indexToRemove, 1);> }> // Displaying the updated array> console.log(>'Updated array:'>, myArray);> |
>
>Išvestis
Elements in the vector: 10 20 30 Updated vector: 10 25>
Masyvų įgyvendinimas:
C++, C, Python, Java ir JavaScript, kodas sukuria masyvą su elementais (10, 20, 30), pasiekia ir modifikuoja elementus pagal indeksą ir rodo atnaujintą masyvą. Sintaksė ir konkretūs metodai įvairiose kalbose skiriasi, tačiau pagrindinės masyvo operacijos išlieka nuoseklios, parodydamos, kaip manipuliuoti ir kartoti masyvais.
C++
#include> using> namespace> std;> int> main() {> >// Creating an array> >int> myArray[3] = {10, 20, 30};> >// Accessing elements by index> >int> firstElement = myArray[0];> >int> secondElement = myArray[1];> >// Modifying an element> >myArray[1] = 25;> >// Displaying the elements in the array> >for> (>int> i = 0; i <3; ++i) {> >cout << myArray[i] << ' ';> >}> >return> 0;> }> |
>
>
C
#include> int> main() {> >// Creating an array> >int> myArray[3] = {10, 20, 30};> >// Accessing elements by index> >int> firstElement = myArray[0];> >int> secondElement = myArray[1];> >// Modifying an element> >myArray[1] = 25;> >// Displaying the elements in the array> >for> (>int> i = 0; i <3; ++i) {> >printf>('%d ', myArray[i]);> >}> >return> 0;> }> |
>
>
Java
public> class> ArrayExample {> >public> static> void> main(String[] args) {> >// Creating an array> >int>[] myArray = {>10>,>20>,>30>};> >// Accessing elements by index> >int> firstElement = myArray[>0>];> >int> secondElement = myArray[>1>];> >// Modifying an element> >myArray[>1>] =>25>;> >// Displaying the elements in the array> >for> (>int> i =>0>; i <>3>; ++i) {> >System.out.print(myArray[i] + ' ');> >}> >}> }> |
>
>
Python3
ketvirtį versle
# Creating an array (using a list)> my_array>=> [>10>,>20>,>30>]> # Accessing elements by index> first_element>=> my_array[>0>]> second_element>=> my_array[>1>]> # Modifying an element> my_array[>1>]>=> 25> # Displaying the elements in the array> for> element>in> my_array:> >print>(element, end>=>' ')> |
>
>
C#
using> System;> class> Program> {> >static> void> Main()> >{> >// Creating an array> >int>[] myArray = { 10, 20, 30 };> >// Modifying an element> >myArray[1] = 25;> >// Displaying the elements in the array> >foreach> (>int> element>in> myArray)> >{> >Console.Write(element + ' ');> >}> >}> }> |
>
>
Javascript
// Creating an array> let myArray = [10, 20, 30];> // Accessing elements by index> let firstElement = myArray[0];> let secondElement = myArray[1];> // Modifying an element> myArray[1] = 25;> // Displaying the elements in the array> for> (let i = 0; i console.log(myArray[i]); }> |
>
>Išvestis
10 25 30>
Apibendrinant, masyvai siūlo a fiksuoto dydžio , gretimos atminties struktūra su efektyvi prieiga prie elementų kadangi sąrašai numato dinaminis dydis , lankstumas , ir integruoti metodai kad būtų lengviau manipuliuoti. Pasirinkimas tarp dviejų priklauso nuo konkrečių programos reikalavimų, o masyvai puikiai tinka scenarijuose, kai fiksuoto dydžio ir tiesioginė prieiga prie atminties yra labai svarbi, o sąrašai yra naudingi dinaminiams duomenims ir įvairioms operacijoms. Galiausiai, suprasdami unikalias kiekvienos duomenų struktūros savybes, kūrėjai gali priimti pagrįstus sprendimus, pagrįstus jų programavimo užduočių poreikiais.