Freundesliste programmieren?

5 Antworten

Eine zentrale Datenbank wo du die Freundesliste jeder Person speicherst und wenn er sie aufruft holt er sich alle relevanten Infos

asdfyxcvbnm 
Fragesteller
 09.07.2020, 11:20

Ich brauch keine Datenbank, aber danke ^^

0
Gurkenhaft  09.07.2020, 11:20
@asdfyxcvbnm

Wenn du das vernünftig implementierst dann brauchst du die auf jeden Fall

0
asdfyxcvbnm 
Fragesteller
 09.07.2020, 11:21
@Gurkenhaft

Es ist eine Aufgabe von der Schule und da hab ich keine Möglichkeit, eine DB anzubinden. Und für dieses kleine Programm hat es auch echt kein Sinn

0

Du könntest eine LinkedList benutzen und das selbst Programmieren mit Knoten "Node", die Du in beide Richtungen miteinander über die Attribute "previousNode" und "nextNode" vom Objekt-Typ Node miteinander verknüpfst.

Die Knoten selbst können zusätzlich noch die Attribute ID, Vorname, Nachname,...haben.

DieLinkedList ist ein Objekttyp, hat einen KopfNode und ein TailNode, damit Anfang und Ende bekannt sind. Die Ethoden fuege Node hinzu, suche Node nach ID, Vorname usw. Könnten gegeben sein, je nachdem, wofür Du halt die Liste magst.

Aber damit wäre die Objektorientierung erfüllt.

natürlich kannste auch das Objekt Freund kreieren und dann damit Freunde deklarieren mit entsprechenden Attributen, nur musste dann gucken, wie Du das zusammenhangend abspeicherst. Vllt in dem Objekttyp Freund Array.

asdfyxcvbnm 
Fragesteller
 09.07.2020, 14:08

Danke, aber eine Linked List ist dafür nicht nötig :) Eine normale Arraylist von Menschen reicht hier

0
chilly10  09.07.2020, 14:10
@asdfyxcvbnm

Nen array ist ja schnell gemacht, musste ja nicht "programmieren". Ist ja ne Programmierfrage...

abspeichern bzw auslesen fur dauerhaft könntest du dann über zB BufferedReader und dann je line in ne Txt-Datei

1
chilly10  09.07.2020, 14:29
@asdfyxcvbnm

ich weiß, aber es geht ja ums Programmieren, und nicht vorgekautes anwenden.

1

Ich persönlich würde definitiv den Weg über eine ID, am liebsten aber über eine Referenz gehen.

Stell dir vor, jemand will irgendetwas ändern. Wenn nun in jeder Freundesliste eine eigene Kopie des Nutzerprofils liegt, dann müssen alle gesucht und verändert werden. Bei einem Verweis auf das entsprechende Profil muss nur genau dieses eine Profil verändert werden, und die Information wird für alle Beteiligten automatisch aktualisiert.

Abgesehen davon gibt es unglaublich viel Redundanz, wenn man überall Kopien von einem Nutzer hat. Soetwas ist nie gut. Müsste ich das implementieren, dann würde ich eine Liste von Pointern auf die anderen Nutzer wählen.

asdfyxcvbnm 
Fragesteller
 09.07.2020, 11:28

Danke :) Aber sind es wirklich Kopien oder nur Referenzen auf das Objekt?

Wenn ich nämlich ein Element aus der Liste rausgreife und verändere, wird es auch in der Liste verändert

0
J0T4T4  09.07.2020, 11:32
@asdfyxcvbnm

Was ist dieses es wovon du sprichst? Wenn du eine Liste von Objekten anlegst dann besteht, je nach Implementierung und Programmiersprache, die Gefahr, dass es sich tatsächlich um Kopien handelt.

Ich will aber nicht ausschließen, dass einige Sprachen wie Java, die aus Prinzip nur mit Referenzen arbeiten, tatsächlich nur die Referenzen klonen. Müsste man sich mal durchlesen.

1
asdfyxcvbnm 
Fragesteller
 09.07.2020, 11:34
@J0T4T4

Alles klar, ich werde mal schauen. Wenn es tatsächlich nur die Referenzen sind, würdest du trotzdem über den Weg mit der ID gehen?

0
J0T4T4  09.07.2020, 11:42
@asdfyxcvbnm

Den Weg mit der ID würde ich nur in einer Datenbank gehen oder wenn das mit den Referenzen überhaupt nicht klappt. Die Objekte selbst sollten aber auf keinen Fall (mehrfach) in den Listen stehen, das wäre einfach nur grauenhafter Stil.

Die Programmierung mit Referenzen ist einfach angenehmer als mit IDs. Sollte die ID aber zum Beispiel der Index einer Nutzerliste sein, dann wäre das auch noch tragbar.

1

Kommt drauf an, wie du es speichern möchtest. Wenn du es in einem eigenen Dateiformat speichern willst, dann am besten eine Liste von Objekten. Dadurch kannst du einfacher drauf zugreifen.

Wenn du die Daten in einer Datenbank speichern willst führt wahrscheinlich kein Weg um IDs herum.

asdfyxcvbnm 
Fragesteller
 09.07.2020, 11:14

Gar nicht speichern, ich brauch es nur zur Laufzeit :)

0
daCypher  09.07.2020, 11:15
@asdfyxcvbnm

Achso. Dann nimm die Liste von Objekten. Dadurch hast du die Objekte direkt zur Verfügung und musst nicht erst nach IDs suchen lassen.

1

Machs über IDs und nutz' 'ne Datenbank. (Bsp: MySQL)

Woher ich das weiß:eigene Erfahrung