ArrayList

Status
Nicht offen für weitere Antworten.

krackmoe

Bekanntes Mitglied
Hab folgenden Code, in meiner main will ich dann mit System.out.println(p.toString());
Mir die Telefonnumer ausgeben lassen, die ich vorher eingegeben habe.
Das tut er mir aber nicht, er gibt mir einfach nichts aus!
Weiß jmd woran das liegt?

Code:
import java.util.*;

public class Person{
	private String name;
	private String nr;
	ArrayList<Person> arr = new ArrayList<Person>();
	
	public Person(String name, String nr){
		this.name = name;
		this.nr = nr;
	}
	public void add(String name, String nr){
		arr.add(new Person(name, nr));
	}
	public String toString(){
		String daten="";		
		for(int i=0; i < arr.size(); i++){
			daten = arr.get(i);
		}
		return daten;
	}
}
 

diggaa1984

Top Contributor
Code:
arr.get(i);

das sollte dir eigentlich was vom typ "Person" zurückgeben, und kein String, aus der Person kannst du dann eleganterweise das entsprechende Attribut holen und ausgeben.
 

ARadauer

Top Contributor
eine Person hat eine Liste von Personen... naja.. ist nicht sehr sinnvoll, ich würd die Arraylist in einer seperaten klasse halten

zeile 19, eine person ist kein String..., und du weißt daten immer wieder einen anderen wert zu, hier am besten stringbuffer oder stringbuilder verwenden, += würde auch gehen, performt aber schlecht


Code:
public class Person{ 
   private String name; 
   private String nr; 
   ArrayList<Person> arr = new ArrayList<Person>(); 
    
   public Person(String name, String nr){ 
      this.name = name; 
      this.nr = nr; 
   } 
   public void add(String name, String nr){ 
      arr.add(new Person(name, nr)); 
   } 
   public String toString(){ 
      StringBuffer daten= new StringBuffer();       
      for(int i=0; i < arr.size(); i++){ 
        daten.append(arr.get(i).name);
        daten.append(" - ");
        daten.append(arr.get(i).nr);
        daten.append("\n"); 
      } 
      return daten.toString(); 
   } 
   
   public static void main(String[] args) {
    Person p = new Person("test", "nummer");
    p.add("test2", "nummer2");
    p.add("test3", "nummer3");
    
    System.out.println(p.toString());
  }
}
 

krackmoe

Bekanntes Mitglied
Mh....

Ja dann bräucht ich ja eigene getter Methoden für name und number oder?
Dann bringt mir ja die ArrayList die ich jetzt habe nichts mehr!?
Dachte man kann das auch so ausgeben?

Was bringt mir das getrennt? Weil dann sind die 2 ja nicht miteinander verknüpft oder?
 

Saxony

Top Contributor
Hiho,

Naja so wie es aber hier da steht, würde er eh nur den letzten Namen der Person bekommen, welche als letztes in der ArrayList steht.
Wieso hat eigentlich eine Person eine ArrayList von anderen Personen? Sind das die Kinder, Freunde oder Ehefrauen dieser Person? ;)

bye Saxony
 

diggaa1984

Top Contributor
Naja, betrachte die Klassen die du hast derart, das sie nur das tun wofür sie da sind, und bei deiner Benennung wäre eine Klasse Person nur etwas, was Namen und Nummer hinterlegt.
Einer weitere Klasse würde nun die ArrayList mit vielen einzelnen Personen beinhalten, quasi ein Datencontainer.

und weil ich das immer so gerne mache, am besten für die Main immer ne extra Klasse ^^ ... hat kein tieferen Sinn ausser das sie da völlig für sich alleine rumdümpelt und es in meinen Augen aufgeräumter ist.
 

Saxony

Top Contributor
diggaa1984 hat gesagt.:
und weil ich das immer so gerne mache, am besten für die Main immer ne extra Klasse ^^ ... hat kein tieferen Sinn ausser das sie da völlig für sich alleine rumdümpelt und es in meinen Augen aufgeräumter ist.

Na wir hoffen doch mal, dass ARadauer es auch immer so macht und nur hier in diesem ganz speziellen Fall, um das Beispiel kurz zu halten, es so gemacht hat. ;)

bye Saxony
 

ARadauer

Top Contributor
aja member variablen macht man private und greift über public und getter und setter methoden darauf zu ;-.)
 

krackmoe

Bekanntes Mitglied
Okay hab das jetzt alles mal umgeschrieben so wie ihr gesagt habt.

book.java:
Code:
import java.util.*;

public class book{
	private String name;
	private String nr;
	Person p = new Person(name, nr);
	
	public book(String name, String nr){
		this.name = name;
		this.nr = nr;
	}
	public void add(String name, String nr){
		p = new Person(name, nr);
	}
	public String toString(){
		return p.toString();
	}
}

person.java:
Code:
import java.util.*;

public class Person{
	ArrayList<Person> arr = new ArrayList<Person>();
	int i=0;
	private String name="";
	private String nr="";
	
	public Person(String name, String nr){
		arr.add(new Person(name, nr));
	}
	public String toString(){
		StringBuffer daten = new StringBuffer();
		for(int i=0; i < arr.size(); i++){
			daten.append(arr.get(i).name);
			daten.append(" - ");
			daten.append(arr.get(i).nr);
			daten.append("\n");
		}
		return daten.toString();
	}
}

Und in der main die ich jetzt nicht gepostet habe, ruf ich wieder die toString auf.

Ist der Konstruktor in meiner Person.java richtig? Übergeb ich da die Arraylist richtig? Weiß ned wie ichs sonst tun sollte..
Gibts da ned irgendwo ne Seite wo das gut erklärt wird..
 

Saxony

Top Contributor
Na ich versteh den Sinn der ArrayList von Personen innerhalb einer Person noch nicht ganz!
Verwenden tust du eh nur eine Person!
In der Klasse Book gibt es zwar eine Methode add, aber die macht was ganz anderes als der Name vermuten lässt.
Sie setzt die EINE Person von Book, klingt aber so als ob sie jedesmal eine neue Person hinzufügt.

bye Saxony
 

diggaa1984

Top Contributor
machen wir mal so:

Code:
import java.util.ArrayList; 

public class Adressbuch{ 
   ArrayList<Person> bekannte = new ArrayList<Person>(); 
    
   public Adressbuch(){ 
   } 

   public void add(String name, String nr){ 
      p = new Person(name, nr); 
      bekannte.add(p)
   } 

   public String toString(){ 
      StringBuffer daten= new StringBuffer(); 
      int size = bekannte.size(); 

      for(int i=0; i < size; i++){ 
        daten.append(bekannte.get(i).getName()); 
        daten.append(" - "); 
        daten.append(bekannte.get(i).getNr()); 
        daten.append("\n"); 
      } 

      return daten.toString();
   } 
}
Code:
public class Person {
   
   private String name;
   private String nr;

   public Person(String name, String nr) {
      this.name = name;
      this.nr = nr;
   }

   public String getName() {
      return name;
   }

   public String getNr() {
      return nr;
   }

   public void setNewNr(String nr) {
      this.nr = nr;
   }

   //finde ich aus realistischer Sicht nicht zwingend notwendig, wenn dann äusserst selten
   public void setNewName(String name) {
      this.name = name;
   }

   //alternativ ein toString, dann müsstest aber das in dem Adressbuch umbauen
}
 

krackmoe

Bekanntes Mitglied
Danke!

Wozu brauch ich jetzt eigentlich noch die Person.java? :) Die hat ja gar keine Funktion mehr, da sowieso alles in der ArrayList drin steht, oder?
 

diggaa1984

Top Contributor
Wozu brauch ich jetzt eigentlich noch die Person.java? Die hat ja gar keine Funktion mehr, da sowieso alles in der ArrayList drin steht, oder?

So nicht ganz korrekt, die ArrayList speichert nicht die Personendaten, sondern gibt dir lediglich den Verweis auf die eigentlichen Personenobjekte mit den Infos. Die ArrayList kennt also nur nen Ort, wo die Personeninfos stehen. Den gibt sie dir zurück, und dann kannst dort quasi schaun was die Person für Daten inne hat.

du willst Daten für Personen speichern, da liegt es schonmal nahe, das Person also eine Klasse wird, welcher du nur die Attribute verpasst die du von ihr speichern willst ... name, adresse, diverse nummern, augenfarbe was nich alles. Mehr macht die Personenklasse nicht. Quasi wie n Ausweis.

So nun willst du mehrere Personen organisieren, bzw im Programm festhalten, brauchen wir also wie du schon erkannt hast zB eine Liste. Nur diese Liste hat nix mit einer einzelnen Person zu tun, wie und wo diese einzelne Person genutzt und referenziert wird, ist dieser egal (Ob du bei deinen Bekannten oder Verwandten im Adressbuch stehst weisst ja auch nicht direkt).

Also legen wir diese Liste ausserhalb der Person.java an, und schon nenn ich das mal Datencontainer. Dieser beinhaltet die Liste und Methoden welche du brauchst um was mit der Liste anzustellen (wie zB die "toString", welche dir alle Personen der Reihe nach ausgibt).

Wenn wir dabei bleiben das deine Personen-klasse Ausweis-infos beinhaltet dann wäre die Containerklasse vielleicht dein Portemonee (schreibt man das so?? ???:L ) ... ist nich ganz perfekt das Beispiel, aber andere Personeninfos würden dann andere Ausweise/Karten in deinem Portm. darstellen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb ArrayList allgemein halten Java Basics - Anfänger-Themen 6
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J ArrayList vergleichen im spiel Mastermind Java Basics - Anfänger-Themen 2
Mugetsu35 ArrayList Update ohne Index Java Basics - Anfänger-Themen 6
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
W if-Abfrage bei ArrayList-Methodenaufrufen - Wie löse ich das? Java Basics - Anfänger-Themen 6
W ArrayList und toString Java Basics - Anfänger-Themen 17
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
M 2d ArrayList durchgehen Java Basics - Anfänger-Themen 2
Blkckroll45 Arraylist Java Basics - Anfänger-Themen 6
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
berserkerdq2 Geht collections.sort bei allen? Linkedhashset, ArrayList, HashSet etc. Java Basics - Anfänger-Themen 4
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
D Arraylist mit Komplexen Datentyp Java Basics - Anfänger-Themen 3
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
volcanos List & ArrayList nach Familiennamen abfragen Java Basics - Anfänger-Themen 57
M static ArrayList in non-static Java Basics - Anfänger-Themen 12
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
M ArrayList<TreeNode<T>> fortlaufende Nummerierung der Elemente Java Basics - Anfänger-Themen 5
B Bungeecord | ProxiedPlayer wird nicht in ArrayList hinzugefügt Java Basics - Anfänger-Themen 1
S ArrayList Username und passwort mit JTextField eingaben abgleichen Java Basics - Anfänger-Themen 10
F Werte in einer Arraylist Zählen Java Basics - Anfänger-Themen 2
F Erste Schritte Zahlenreihe von Arraylist in 3erBlöcke sortiert in neue Arraylist Java Basics - Anfänger-Themen 2
M ArrayList mit einer Schleife befüllen Java Basics - Anfänger-Themen 2
F Methode ArrayList mit Eingabewert Java Basics - Anfänger-Themen 2
J ArrayList add methode selbst programmieren Java Basics - Anfänger-Themen 10
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
thobren jtable arraylist Java Basics - Anfänger-Themen 12
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
Zeppi OOP ArrayList Java Basics - Anfänger-Themen 2
P ArrayList Java Basics - Anfänger-Themen 4
L ArrayList auf 4 Elemente begrenzen Java Basics - Anfänger-Themen 56
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
S Arraylist<Object> mit verschiedenen Objects ausgeben Java Basics - Anfänger-Themen 3
J ArrayList auf bereits vorhanden eintrag prüfen Java Basics - Anfänger-Themen 5
M For Schleife/ArrayList Java Basics - Anfänger-Themen 12
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18
L Längstes Element einer ArrayList ausgeben Java Basics - Anfänger-Themen 9
S Aus verschachtelter ArrayList auf einen Wert zugreifen Java Basics - Anfänger-Themen 4
L Methoden ArrayList Werte hinzufügen und löschen Java Basics - Anfänger-Themen 32
M ArrayList in GUI ausgeben Java Basics - Anfänger-Themen 1
J Nur bestimmter Typ aus der ArrayList ausgeben. Java Basics - Anfänger-Themen 9
Bademeister007 Hallo Leute ich hab eine Frage zur ArrayList Java Basics - Anfänger-Themen 8
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
S Objekt aus Arraylist in andere Arraylist kopieren? Java Basics - Anfänger-Themen 2
C Sortieren einer ArrayList Java Basics - Anfänger-Themen 2
krgewb ArrayList von ArrayList Java Basics - Anfänger-Themen 2
R ArrayList Problem Java Basics - Anfänger-Themen 6
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
O Namen (mit Umlauten und ß) in einer ArrayList suchen Java Basics - Anfänger-Themen 5
N Typebound Objekte einer Arraylist hinzufügen Java Basics - Anfänger-Themen 7
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
S ArrayList in andere Klasse übernhemen Java Basics - Anfänger-Themen 5
M Letztes Element einer ArrayList Java Basics - Anfänger-Themen 12
B Objektverwaltung mit ArrayList in einer seperaten Klasse Java Basics - Anfänger-Themen 24
I Sortiert eine HashMap nicht gleich wie eine ArrayList? Java Basics - Anfänger-Themen 1
I ArrayList erstellen innerhalb einer Zeile? Java Basics - Anfänger-Themen 3
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
V Collections ArrayList mit Comparator sortieren Java Basics - Anfänger-Themen 16
D Collections Arrays in ArrayList abspeichern Java Basics - Anfänger-Themen 6
F java.util.ArrayList Java Basics - Anfänger-Themen 3
M ArrayList - Objekt kopieren und ändern Java Basics - Anfänger-Themen 11
M Zugriff auf eine ArrayList in einer anderen Klasse Java Basics - Anfänger-Themen 4
P Arraylist zu einem Array bringen mit Verschachtelung Java Basics - Anfänger-Themen 11
N Methode mit einer Arraylist Java Basics - Anfänger-Themen 106
I ArrayList - Methode zum Speichern eines Eintrags in einer Datei Java Basics - Anfänger-Themen 17
H ArrayList Java Basics - Anfänger-Themen 7
D public ArrayList(Collection<? extends E> c); Java Basics - Anfänger-Themen 2
M JTextField in ArrayList speichern Java Basics - Anfänger-Themen 4
C ArrayList mit return zurückgeben Java Basics - Anfänger-Themen 13
K Zahlenfolge ArrayList Java Basics - Anfänger-Themen 3
C Erste Schritte Frage zur ArrayList Java Basics - Anfänger-Themen 15
I Klassen Eine ArrayList<Long>, die sich automatisch sortiert Java Basics - Anfänger-Themen 20
F Array in ArrayList ablegen Java Basics - Anfänger-Themen 3
V ArrayList Java Basics - Anfänger-Themen 1
Z Runden Arraylist Java Basics - Anfänger-Themen 9
X Frage zur einer ArrayList in einer ArrayList Java Basics - Anfänger-Themen 5
F Arraylist als Pfadausgabe Java Basics - Anfänger-Themen 10
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
L Objekt aus Textdatei in ArrayList speichern Java Basics - Anfänger-Themen 4
M Problem mit ArrayList Java Basics - Anfänger-Themen 32
X Objekte einer ArrayList richtig ausgeben? Java Basics - Anfänger-Themen 8
O Hashmap, ArrayList, LinkedList Java Basics - Anfänger-Themen 7
X Problem mit Arraylist in Arraylist Java Basics - Anfänger-Themen 2
O HashMap - ArrayList Java Basics - Anfänger-Themen 29
M UML-Klassendiagramm ArrayList Java Basics - Anfänger-Themen 1
O ArrayList oberflächig durchsuchen Java Basics - Anfänger-Themen 3
I "\n" aus ArrayList enfernen, aber wie?! Java Basics - Anfänger-Themen 4
V Collections Objekte einer ArrayList in der main() ausgeben Java Basics - Anfänger-Themen 9
Jackii ArrayList ausgabe ohne Dopplung Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben