Datentyp vs. Datenstruktur - Unterschiede

Status
Nicht offen für weitere Antworten.

knowledge

Bekanntes Mitglied
Ich hab den Unterschied so verstanden:

Ein Datentyp definiert einen Wertebereich und die damit verbundenen möglichen Operationen, z.B. Zahlen (Wertebereich), Addition, Subtraktion (Operationen).

Eine Datenstruktur fasst Datentypen zusammen und bietet ebenfalls Operationen an z.B. Stack (Push, Pop). Basiert bzw. benötigt also Datentypen.

Wenn ich in Java also z.B. eine Klasse Person habe und diese hat jetzt einfach nur ein Alter (int Datentyp) und einen Namen (String) und davon ein Objekt erzeuge:

Person p = new Person(18, "Hanswurst");

p ist ja ein Referenzdatentyp. Ein Referenzdatentyp beinhaltet "Adressen" (Wertebereich), Operationen (Vergleich mit ==). Person selbst, was jetzt referenziert wird ist dann aber eine Datenstruktur, richtig? Da ja Datentypen von dieser gekapselt werden.

Hab ich das so richtig verstanden? Bei meinen Recherchen habe ich auch oft gefunden, dass die beiden Wörter oft Synonym benutzt werden, aber das ist ja wohl sicher nicht Sinn der Sache :)
 

Saxony

Top Contributor
Hab ich das so richtig verstanden?

Grob vereinfacht -> Ja

Bei meinen Recherchen habe ich auch oft gefunden, dass die beiden Wörter oft Synonym benutzt werden, aber das ist ja wohl sicher nicht Sinn der Sache :)

Ka wo du so suchst, aber bei meinen "Recherchen" ist mir das noch nie aufgefallen, da immer sauber getrennt wurde.

bye Saxony

Hmm da fällt mir grad noch was ein: Datenstrukturen und Algorithmen ausm Teubner Verlag - weils grad auf meinem Schreibtisch liegt. ;)
 
S

SlaterB

Gast
> Ka wo du so suchst, aber bei meinen "Recherchen" ist mir das noch nie aufgefallen, da immer sauber getrennt wurde.

z.B. bei der aller aller ersten Quelle, die man sich dazu denken kann, falls man sich nicht nur auf Java bezieht
Datentyp - Google-Suche
erster Link
Datentyp ? Wikipedia
[..]
Zusammengesetzte Datentypen
[..]
Verbund, Satz, Struktur, Bereich

* Bezeichnung: RECORD, STRUCT, CLASS (erweiterte Bedeutung), (implizite Definition über Stufennummern)
* Wertebereich: Ein Verbund enthält eine Folge verschiedener Komponenten, welche verschiedene Datentypen haben können. Als Komponententyp ist jeder Typ zulässig.
[..]
+
Abstrakte Datentypen

Definition
Ein Abstrakter Datentyp (ADT) ist eine Sammlung von Daten in Variablen – verbunden mit der Definition aller Operationen, die auf sie zugreifen.

Da der Zugriff (lesend oder schreibend) nur über die festgelegten Operationen erfolgt, sind die Daten nach außen gekapselt. Jeder ADT enthält einen Datentyp bzw. eine Datenstruktur.
Objektorientierte Programmiersprachen unterstützen durch ihr Klassenkonzept die Erstellung von ADTs, da hier Daten und Operationen gebunden werden, und die Daten geschützt werden können.
in
Datenstruktur ? Wikipedia
sind dagegen nur bestimmte Container-Klassen wie Listen, Maps, Baum usw. genannt

----

also ich meine, das ganze wird vielleicht nicht von einer Quelle synonym eingesetzt,
aber es ist mal so und mal so definiert, ob nun Person ein (Abstrakter) Datentyp oder eine Datenstruktur ist

wenn man dann Texte liest, die nichts direkt selber definieren, dann wird man zwangsläufig auf beide Begriffe in zufälliger Wahl treffen, es entsteht der Eindruck der Synonymität

-----

edit:
Der Übergang von der Datenstruktur zu einem Abstrakten Datentyp ist dabei nicht klar definiert, sondern hängt einzig von der Betrachtungsweise ab.
Datenstruktur - Lexikon
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
ich finde eigentlich bis auf kleinere API-Beschreibungen gar keinen Link, der eine Klasse Person als 'Datenstruktur' bezeichnen würde,
ist deine erste Antwort

> Grob vereinfacht -> Ja

vielleicht doch nicht zutreffend? ;)

-----

interessant und vermischt wird es erst, wenn man eine Datenstruktur wie eine Liste um zusätzliche individuelle Felder erweitert,

'Klasse Person habe und diese hat jetzt einfach nur ein Alter (int Datentyp) und einen Namen (String) '
+ Liste aller Nachbarn/ Bekannten,

ist es dann immer noch ein abstrakter Datentyp oder schon etwas mehr eine Datenstruktur? ;)
 

Saxony

Top Contributor
Hiho,

für mich ist alles was einen primitiven Datentyp kapselt eine (Daten)struktur z.B. auch schon eine Klasse Punkt mit int x,y. Somit sind dann alle einzeln auftretende primitiven Datentypen ein Datentyp - so wie es der Name schon sagt. ;)

In meiner unendlichen Großzügigkeit rechne ich String auch noch mit zu den Datentypen. :D
Alle anderen Wrapper sind für mich wieder Datenstrukturen.

So habe ich das schon vor 15 Jahren bei Turbo Pascal gelernt und gelebt und werde es auch so mit ins Grab nehmen.

bye Saxony
 

Noctarius

Top Contributor
Also sind für dich Integer, Double, Long, ... schon Datenstrukturen? Oo

Ich würde sagen zu einer Struktur benötigt man doch mal wenigstens 2 unterschiedliche Daten.
 
G

Gelöschtes Mitglied 5909

Gast
Operationen (Vergleich mit ==)

Jein. In Java kann man operatoren (+, -, +, +=, -=,==,...) nicht überladen. Stattdessen muss man Methoden schreiben. Der Vergleich von Objekten mit == bezieht sich auf die Referenz, nicht auf den Inhalt
-> Objekte "immer" mit equals vergleichen und equals überschreiben
 

0x7F800000

Top Contributor
Ja, da diese Wrapper ja bereits einen Datentyp kapseln.
Dann gibt es also nur noch "primitive Datentypen"= int, double, boolean und "Datenstrukturen"=alles was von objekt erbt?
Und weil in Scala, Ruby & C# alles Objekt ist, gibt es dort nur noch "Datenstrukturen". Daher würde ich mal vorschlagen, dass man dieses unnötig lange Wort einfach nur noch durch "Daten und so" ersetzt. Dann gibt es keine Lästige Differenzierung mehr, und es heißt nur noch "In C# gibt's Daten und so" :eek:

So wie ich das Wort kenne, sind Datenstrukturen ziemlich genau die dinger, die in der Collection-API implementiert sind: Sets, Listen, Maps usw.
 

Saxony

Top Contributor
Dann gibt es also nur noch "primitive Datentypen"= int, double, boolean und "Datenstrukturen"=alles was von objekt erbt?

Mit dem Zusatz, dass diese Klasse noch Datentypen kapseln muss. Eine Util Klasse mit nur statischen Methoden beispielsweise ist keine Datenstruktur.

So wie ich das Wort kenne, sind Datenstrukturen ziemlich genau die dinger, die in der Collection-API implementiert sind: Sets, Listen, Maps usw.

Es nur auf die Collection API zu beziehen ist viel zu eng gesehen. Was ist mit eigenen Implementierungen von Stacks und Listen oder auch AVL Bäume, welche nicht Bestandteil der Collections API sind? Das sind ebenfalls Datenstrukturen ausserhalb der Collectionss API.

bye Saxony
 

Noctarius

Top Contributor
Ich denke aus Java kann man den Begriff Datenstruktur fast streichen, weil für mich an eine Datenstruktur eine feste schematische Reihenfolge gebunden wäre, wie z.B. unter C mit einem struct.

Dabei sind eben nicht nur die Datentypen innerhalb des struct wichtig, sondern auch deren feste Reihenfolge und ich kann eine Struktur anhand dessen direkt schreiben und lesen.

Ohne wrapper-Methoden wie read/save ist sowas in Java nicht möglich und dann wäre ich Andreys Meinung, dass Collenctions / Maps / Listen / usw am ehesten einer Struktur entsprechen.

Es gibt in Java eben Datentypen (alle primitiven und die Wrapperklassen, für welche die Operatoren überladen sind) und Klassen und Dao-Klassen/-Objekte (was Ihr in Datenstrukturen versucht zu schieben ^^)
 
S

SlaterB

Gast
'ihr' ist bisher nur Saxony, aber mir sind auch beide bzw. wechselnde Sichtweisen bekannt,

traue keinem Fachwort über den Weg, dessen Definition im genauen Wortlaut du schon wieder vergessen hast ;)
 

Marco13

Top Contributor
Ich habe nicht alles gelesen, weil es tendenziell auf Wortklauberei rausläuft, und ... wie es mein InfI-Dozent mal gesagt hat: ~"Namen sind Schall und Rauch - das Ziel ist die Fähigkeit, sich im abstrakten Gerüst der Definitionen sicher zu bewegen". Wikipedia definiert die Begriffe so-und-so, irgendein Uni-Skript anders, und im Netz finden sich noch ein paar tausend andere Definitionen. Man verwendet die, die man im jeweiligen Kontext verwenden soll. (<-Punkt)

Ganz subjektiv: Eine Datenstruktur ist ein Baum (und umgekehrt). Ein Datentyp ist ein Knoten (und umgekehrt). Ein einzelner Knoten ist auch ein Baum (und umge... nein, diesmal nicht... :D )
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Datentypen Wertebereiche passender Datentyp Java Basics - Anfänger-Themen 5
K Warum wird mir hier nach dem ersten Durchlauf zwei mal "welchen Datentyp wollen sie übergeben?" ausgegeben ? Java Basics - Anfänger-Themen 1
MiMa Probleme mit Datentyp long ?? Java Basics - Anfänger-Themen 2
D Arraylist mit Komplexen Datentyp Java Basics - Anfänger-Themen 3
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
H Datentyp mit 3 Zuständen Java Basics - Anfänger-Themen 42
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
Kanaska Datentyp für Zahlenbereiche Java Basics - Anfänger-Themen 7
A Datentyp char Java Basics - Anfänger-Themen 27
I Klassen als Datentyp nutzen? Java Basics - Anfänger-Themen 11
C unverständlicher Code Attribute ohne Datentyp, wie geht das? Java Basics - Anfänger-Themen 8
T Datentyp mit Anführungszeichen drinnen Java Basics - Anfänger-Themen 3
R Datentypen Datentyp String lenght & charAT Java Basics - Anfänger-Themen 4
M Array mit eigenem Datentyp probleme beim übergeben Java Basics - Anfänger-Themen 6
C Interface als Datentyp eines Attributes? Java Basics - Anfänger-Themen 6
B Datentypen Datentyp welcher den gleichen Namen wie die Klasse trägt? Java Basics - Anfänger-Themen 1
D Datentypen Welcher ist der beste Datentyp? Java Basics - Anfänger-Themen 28
F Datentypen Missverständnis Datentyp Java Basics - Anfänger-Themen 2
D Rechnen mit numerischen Datentyp Frage Java Basics - Anfänger-Themen 16
E Klassename als Datentyp??? Java Basics - Anfänger-Themen 4
F Wertebereich/Datentyp Java Basics - Anfänger-Themen 26
M Datentypen Java Datentyp Definition Java Basics - Anfänger-Themen 6
MiMa Datentyp Short Wert zuweisen über Methode Java Basics - Anfänger-Themen 2
Z Was habe ich davon mit einem Datentyp verschiedene Instanzen zu haben? Java Basics - Anfänger-Themen 6
D Klassen Gesucht: Einfache Beispiel-Klasse für einen Datentyp Java Basics - Anfänger-Themen 7
E Datentypen Benutzerdefinierten Datentyp verwenden Java Basics - Anfänger-Themen 1
ms_cikar Java Datentyp unwandlung Java Basics - Anfänger-Themen 7
G Datentypen Tipps, Ratschläge erwünscht bzgl. Datentyp bestimmen über Wertebereich Java Basics - Anfänger-Themen 5
Y Warum void statt Datentyp + return Java Basics - Anfänger-Themen 4
M Interface als Datentyp Java Basics - Anfänger-Themen 12
R Variablen Datentyp erst während Laufzeit festlegen Java Basics - Anfänger-Themen 6
1 Neuen Datentyp für rationale Zahlen als Klasse entwickeln Java Basics - Anfänger-Themen 20
R Datentypen Datentyp eines Werts in einer Textdateizeile abfragen und ändern Java Basics - Anfänger-Themen 4
R Interface Datentyp bei Erzeugung eines Objekts, dessen Klasse eine Schnittstelle implementiert Java Basics - Anfänger-Themen 18
B Collections Collection soll nur einen bestimmten Datentyp aufnehmen Java Basics - Anfänger-Themen 12
V Datentypen Frage zum Datentyp Byte Java Basics - Anfänger-Themen 11
B datentyp in binär umwandeln Java Basics - Anfänger-Themen 5
S Primitiver Datentyp Short , Vorteil/Nachteil Betrachtung Java Basics - Anfänger-Themen 6
J Field auf Datentyp prüfen Java Basics - Anfänger-Themen 8
D Datentyp Object Java Basics - Anfänger-Themen 2
A Datentypen Mehrdimensionaler Datentyp gesucht Java Basics - Anfänger-Themen 4
D Datentypen Abstrakter Datentyp lässt sich nicht casten Java Basics - Anfänger-Themen 7
F Klassenorganisation: Datentyp in Datentyp anlegen Java Basics - Anfänger-Themen 3
N Unerklärlich: Rekursiver Algorithmus gibt falschen Datentyp zurück... Java Basics - Anfänger-Themen 4
J Datentypen Was ist der Sinn vom Datentyp "char" ? Java Basics - Anfänger-Themen 11
G Eigener Autoboxing Datentyp Java Basics - Anfänger-Themen 3
Binary.Coder Welcher Datentyp für den Simplex Algorithmus Java Basics - Anfänger-Themen 3
Guybrush Threepwood Effizientester Datentyp zur Speicherung einer ungeordneten Menge von ints Java Basics - Anfänger-Themen 8
B Datentyp für +,-,*,/ Java Basics - Anfänger-Themen 5
D Datentypen Rekursiver Datentyp Java Basics - Anfänger-Themen 8
GianaSisters Auf Datentyp überprüfen Java Basics - Anfänger-Themen 13
W Datentypen Operatoren für eigenen Datentyp nutzen Java Basics - Anfänger-Themen 2
M Array mit komplexem Datentyp Java Basics - Anfänger-Themen 9
M 2 Arrays mit komplexen Datentyp vergleichen Java Basics - Anfänger-Themen 8
G Datentypen Welcher Datentyp Java Basics - Anfänger-Themen 2
F Datentypen Welchen Wert hat ein einfacher Datentyp nach der Deklaration? Java Basics - Anfänger-Themen 6
J Datentypen Datentyp für Datum Java Basics - Anfänger-Themen 23
B Java Bean, JSP, Komplexer Datentyp Java Basics - Anfänger-Themen 3
I Datentypen Eigener DatenTyp Java Basics - Anfänger-Themen 2
E Datentyp Array Java Basics - Anfänger-Themen 10
M Datentypen Eigenen Datentyp toArray() Java Basics - Anfänger-Themen 4
A Datentyp Char wird in BlueJ nur als leerer weißer Kasten dargestellt Java Basics - Anfänger-Themen 1
N Frage zu Datentyp byte Java Basics - Anfänger-Themen 14
F Datentyp Number???? Java Basics - Anfänger-Themen 2
A einlesen, schreiben, umwandlung datentyp Java Basics - Anfänger-Themen 10
A Datentyp mit String festlegen? Java Basics - Anfänger-Themen 13
D Generischer Datentyp Java Basics - Anfänger-Themen 2
D Datentyp: Liste von String->Double dingern Java Basics - Anfänger-Themen 4
C Datentyp von einer Variablen ermitteln. Java Basics - Anfänger-Themen 12
M Datentyp Parameter Java Basics - Anfänger-Themen 18
R Welchen Datentyp verwenden? Java Basics - Anfänger-Themen 12
B Datentyp anlegen Java Basics - Anfänger-Themen 6
M Eigene Klasse mit "Enumeration"-Datentyp verknüpfe Java Basics - Anfänger-Themen 16
K Datentyp Problem Java Basics - Anfänger-Themen 2
X Rekursion & Generischer Datentyp Java Basics - Anfänger-Themen 11
A neuen Datentyp (Digit) definieren Java Basics - Anfänger-Themen 12
A Datentyp String in char umwandeln Java Basics - Anfänger-Themen 3
J datentyp -objectTyp Rückgabe Java Basics - Anfänger-Themen 2
D Superinterface als Datentyp Java Basics - Anfänger-Themen 5
E Generischer Datentyp und Arrays Java Basics - Anfänger-Themen 3
Z ArrayList<Entry<Datentyp, Integer>> ? Java Basics - Anfänger-Themen 12
L Datentyp Problem Java Basics - Anfänger-Themen 7
F Datentyp eines Inputs überprüfen Java Basics - Anfänger-Themen 2
NightmareVirus Datentyp des Arrayinhalt abfragen Java Basics - Anfänger-Themen 4
S Probleme mit Datentyp beim Einlesen Java Basics - Anfänger-Themen 4
C Datentyp byte Java Basics - Anfänger-Themen 22
G Java Problem [Datentyp] Java Basics - Anfänger-Themen 10
B Datentyp char -> Zeichen um einen Wert erhöhen Java Basics - Anfänger-Themen 12
M long Datentyp effizient mit Daten füllen Java Basics - Anfänger-Themen 2
S Datentyp aus 3 longs Java Basics - Anfänger-Themen 3
M datentyp ausfindig machen Java Basics - Anfänger-Themen 2
C Eigenen Datentyp schreiben Java Basics - Anfänger-Themen 13
T Probleme mit Datentyp Double Java Basics - Anfänger-Themen 4
W Datentyp Zahlen sortieren Java Basics - Anfänger-Themen 12
B Datentyp gesucht Java Basics - Anfänger-Themen 5
J Datentyp einer Klasse bei Anwendung von implements Java Basics - Anfänger-Themen 4
R Datentyp Ring - zyklisch doppelt verkettete Liste - HILFE! Java Basics - Anfänger-Themen 12
M Linkedlist, wert auf datentyp prüfen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben