Czym się rożni kolekcja od struktury

0

Czy mógłby mi ktoś przedstawić różnice w definicji, np na przykładzie instancji klasy, obiektu, jest struktura czy kolekcja danych?

4

W gruncie rzeczy to to samo

O strukturach danych zwykle mowi sie w kontekscie algorytmicznym a o kolekcjach w kontekscie biblioteki

2

dla mnie kolekcja, to jak bibloteka a struktura to jak ksiazka

Kolekcja moze zawierac kilka (jednakowych) struktur

Struktura, moze zawierac kilka roznych kolekcji tych samych struktur

Instancja obiektu moze byc zarowno struktura jak i kolekcja danych

Np

List<T> kolekcja = new List<T>()

gdzie T to Twoja struktura

struct Struktura
{
  int zmiennaLiczbowa;
  string zmiennaZnakowa
  List<ABC> zmiennaKolekcjiABC
  List<CBA> zmiennaKolekcjiCBA
}

dodatkowo istnieja rozne typy kolekcji (kolejka, lista, tablica itd.)

2

Mnie w szkole średniej uczyli że:
struktura (danych) - to taki pojemnik na dane. Masz strukturę osoba i ona ma same pola jak np. imie, nazwisko, wiek

struct Osoba {
    string imie;
    string nazwisko;
    int wiek;
}

klasa to następny krok ewolucji struktury - zawiera metody. dla struktury osoba może zawierać metody np. isWoman() / isMan() zawiera jakieś zachowania przewidziane dla struktury.

class Osoba {
    string imie;
    string nazwisko;
    int wiek;

    bool isOlderThan(Osoba value);
    bool isWoman();
}

obiekt - to instancja, wcielenie danej klasy lub struktury.

Osoba* kowalski = new Osoba("Jan", "Kowalski");

kolekcja - zestaw obiektów danej klasy/struktury. Np. liste albo tablice.

List<Osoba> osoby = List.of(new Osoba("Jan", "Kowalski), new Osoba("Janusz", "Nosacz"));
3

Struktura jest pojęciem szerszym, tj. każda kolekcja jest strukturą, nie każda struktura jest kolekcją.

Lista, zbiór, mapa itp. jest strukturą reprezentującą nieokreśloną liczbę podobnych elementów. Np. String może być interpretowany jako lista znaków.

Natomiast bardzo łatwo znaleźć przykład struktury, która nie spełnia powyższej definicji - np. struktura z dwoma zmiennymi char.

1

Natomiast bardzo łatwo znaleźć przykład struktury, która nie spełnia powyższej definicji - np. struktura z dwoma zmiennymi char.

Przeciez to tez kolekcja. Na dwa elementy :) W czym to jest gorsze od np. optionala?

2

Struktura: takie coś co jest w każdym języku: zbiór pól np. struct X {string name; string surname}
Struktura danych: generalny termin określający coś co trzyma dane w pamięci komputera w jakimś określony sposób
Kolekcja: coś co trzyma wiele elementów danego typu w określony dla siebie sposób.

Struktura to struktura danych, ale nie odwrotnie. Struktura danych to najbardziej bazowe pojęcie.
Największym problemem jest to, że jak ktoś użyje słowa "struktura danych" to najczęściej chodzi o o coś co jest używane w algorytmach. I w tym wypadku struktury danych są zazwyczaj kolekcjami

1 użytkowników online, w tym zalogowanych: 0, gości: 1