verschiedene datentypen in arraylist

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hallo, ist es möglich in eine aryaylist verschiedene datentypen, zu packen, also einen int wert einen boolwert,einen String und ein objekt einer eigens erstellten Klasse bsp. person .
und wie muss ich das machen kann ich einfach sagen new arralist und dann mit add die einzelnen hinzufügen.
 

MarcoBehnke

Bekanntes Mitglied
Ja, nur dass Du keine nativen Datentype (int, float etc...) darein packen kannst. Dazu musst du die Wrapper klassen Integer, Floar, Boolean etc benutzen.

Code:
ArrayList list = new ArrayList();
list.add(new Object());
list.add(new Integer(5));
// etc....

Beim rausholen aus der ArrayList und der Weiterverwendung musst Du allerdings genau darauf achten, was Du machst.
 
G

Gast

Gast
Ja ok danke für die schnelle Antwort. Wollte halt eine Arraylist verwenden um nicht 10 parameter einzeln übergeben zu müssen. da es aber immer diese parameter sind sollte es ja kein problem sein oder?
 

jPat

Bekanntes Mitglied
Ja, dass kannst du machen, du weisst dann abver nicht, wo welcher datentyp sich befindet.

BSP:

Code:
ArrayList al = new ArrayList();
al.add(new Integer(5));
al.add("Hallo");

Integer i =  (Integer) al.get(0);  // Hier gibt es ein Warning, da der COmpiler nicht weiß ob dort ein Integer drin ist.  
String  s =  (String) al.get(1);    // s.o.

Hinweis: instaceof - operator !

primitive Datentypen wie int, double, ... kannst du nicht reinspeichern. Siehe Wrapper Klassen -> Javabuch
 

milchjeeper

Mitglied
hu,

wenn du dir nicht merken willst welcher typ an welcher stelle steht kannst du die Art des Objekts auch abfragen:

Code:
		for(int i=0; i < a.size(); i++)
		{
			if( a.get(i) instanceof Integer )
			{
				// machwas
			}
			// (...)
		}



Gruß

milchjeeper
 
S

SlaterB

Gast
Strings schonmal gar nicht mit == vergleichen, sondern mit equals,
und Klassen doch wohl mit instanceof testen!
 

Marco13

Top Contributor
Mal ganz allgemein: Nicht alles, was man tun KANN, SOLLTE man auch tun. Was auch immer du erreichen willst: Wenn du glaubst, dass eine ArrayList mit verschiedenen Typen die beste Lösung ist, kannst du davon ausgehen, dass du dich irrst....
 

Leroy42

Top Contributor
Gast hat gesagt.:
um nicht 10 parameter einzeln übergeben zu müssen.

Warum definierst du dir nicht einfach eine eigene Klasse dafür?

Code:
class MyData {
  int param1;
  int param2;
  String param3;
  String param4;
  MyClass param5;
  ...
}
 

MarcoBehnke

Bekanntes Mitglied
also... eine ArrayList zu benutzen, um Parameter an eine Funktion zu übergeben ist "schlechter Stil"

Wenn die Funktion viele Parameter hat, dann mag das zwar auf den ersten Blick unübersichtlich sein, aber dafür ist es klar definiert und jeder der die Funktion sieht, weiß sofort, was da übergeben wird (Stichwort Wartbarkeit).

Eine Klasse mit vielen Variablen zur Übergabe als Parameter verlagert nur das Problem, schlechter Stil bleibt es trotzdem.
 

Leroy42

Top Contributor
MarcoBehnke hat gesagt.:
Eine Klasse mit vielen Variablen zur Übergabe als Parameter verlagert nur das Problem, schlechter Stil bleibt es trotzdem.

Wieso das denn? :shock:

Auf diese Art werden die Parameter logisch
zusammengefasst.
 

Leroy42

Top Contributor
Wildcard hat gesagt.:
Leroy42 hat gesagt.:
MarcoBehnke hat gesagt.:
Eine Klasse mit vielen Variablen zur Übergabe als Parameter verlagert nur das Problem, schlechter Stil bleibt es trotzdem.
Wieso das denn? :shock:
Design Pattern Parameter Object
http://c2.com/cgi/wiki?ParameterObject

Zitat aus obigem Link hat gesagt.:
Proposed Solution: Replace the LongParameterList with a ParameterObject;
an object or structure with data members representing the arguments to be passed in.

Da wird das doch auch vorgeschlagen.
Oder bin ich jetzt zu blöd die Passage zu finden,
in der diese Vorgehensweise kritisiert wird? :shock: ???:L
 

Wildcard

Top Contributor
MarcoBehnke hat gesagt.:
gegenüber diesem Designpattern muss ich mich wohl geschlagen geben ;)
Was heißt geschlagen geben? Dieses Vorgehen macht dennoch nur Sinn, wenn man sich auch an andere Prinzipien hält.
Dazu sei folgender 'Smell within a class' zitiert:

Long Parameter List
Don't pass in everything the method needs; pass in enough so that the method can get to everything it needs.
http://wiki.java.net/bin/view/People/SmellsToRefactorings
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Verschiedene Konstruktoren mit gleichen Datentypen Java Basics - Anfänger-Themen 8
T for-each-Schleife, verschiedene Datentypen Java Basics - Anfänger-Themen 1
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
T Datentypen Kann Java 2 verschiedene Datentypen vergleichen? Java Basics - Anfänger-Themen 2
G Erste Schritte Über verschiedene Datentypen iterieren. Gibt es sowas? Java Basics - Anfänger-Themen 19
R Input/Output verschiedene Datentypen als Bytes in Datei speichern Java Basics - Anfänger-Themen 15
S Datentypen Die verschiedene Java Datentypen [Anfänger] Java Basics - Anfänger-Themen 8
B Welcher Feld Typ für verschiedene Datentypen? Java Basics - Anfänger-Themen 4
N Problem mit Tastatureingaben für verschiedene Datentypen Java Basics - Anfänger-Themen 3
I Array für verschiedene Datentypen? Java Basics - Anfänger-Themen 5
G Verschiedene Datentypen in Vector packen und zurück Java Basics - Anfänger-Themen 3
I 2 verschiedene Klassen mit gleichen Property vergleichen Java Basics - Anfänger-Themen 13
Buroto Threads Verschiedene .txt Dateien Auf Listen und Verbinden Java Basics - Anfänger-Themen 3
S OOP Java Eingabe in verschiedene Datenbank Tabellen eintragen Java Basics - Anfänger-Themen 7
I SWT Plattformunabhängig laden - verschiedene SWT .jar laden Java Basics - Anfänger-Themen 0
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
D Zwei verschiedene Intellij Projekte, wie benutze ich wechselseitig objekte Java Basics - Anfänger-Themen 8
K verschiedene Eingaben sortieren Java Basics - Anfänger-Themen 6
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
HoT verschiedene ArrayLists mit ähnlichem Namen in for-Schleife aufrufen Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
M JavaFX- Verschiedene Stages Java Basics - Anfänger-Themen 1
B Get / Set - Methode für verschiedene Entities? (generisch) Java Basics - Anfänger-Themen 21
L Wie Input auf verschiedene Kriterien hin überprüfen? Java Basics - Anfänger-Themen 3
T Vererbung Verschiedene Fahrzeugtypen mit unterschiedlicher Ausgabe Java Basics - Anfänger-Themen 17
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
F Komplexe Zahlen auf verschiedene Weise addieren Java Basics - Anfänger-Themen 18
N verschiedene Reihenfolgen ausgeben Java Basics - Anfänger-Themen 15
M Dijkstra Algorithmus in Graphen auf mehrere verschiedene Knoten anwenden lassen Java Basics - Anfänger-Themen 11
Java The Hutt SetWerte über verschiedene Klassen Java Basics - Anfänger-Themen 16
M Verschiedene Eingabe = Verschiedene Ausgaben Java Basics - Anfänger-Themen 5
M Erste Schritte Mit Variable verschiedene Texte in Textfeld einfügen Java Basics - Anfänger-Themen 27
B String auseinander nehmen in verschiedene Teile Java Basics - Anfänger-Themen 9
X Variablen Problem bei Aufteilung in verschiedene Class-Files Java Basics - Anfänger-Themen 4
E JAvaFX: Verschiedene Panels nach Klick auf Node des TreeView anzeigen Java Basics - Anfänger-Themen 0
T Java verschiedene Anweisungen Java Basics - Anfänger-Themen 23
W Verschiedene Bibliotheken in einer Anwendung? Java Basics - Anfänger-Themen 2
tuc Erste Schritte verschiedene objekte in einem feld speichern Java Basics - Anfänger-Themen 4
L Verschiedene Bilder per Knopfdruck anzeigen lassen Java Basics - Anfänger-Themen 17
J ArrayList über verschiedene Klassen verwenden Java Basics - Anfänger-Themen 7
P Erste Schritte durch MenuBar verschiedene Fenster öffnen Java Basics - Anfänger-Themen 2
G Datentypen verschiedene Objekte in eine ArrayList, Generics Java Basics - Anfänger-Themen 2
GoldenShadow Input/Output Verschiedene Versionen von Input/Output Java Basics - Anfänger-Themen 3
I Drucken in Java / verschiedene Papierformate Java Basics - Anfänger-Themen 0
P Verschiedene Java Versionen nutzen Java Basics - Anfänger-Themen 6
Z Was habe ich davon mit einem Datentyp verschiedene Instanzen zu haben? Java Basics - Anfänger-Themen 6
S write(), weshalb verschiedene Ausgaben? Java Basics - Anfänger-Themen 4
E Erste Schritte Verschiedene Anfängerfragen (Rekursion, Terminierung, Schleife, etc.) Java Basics - Anfänger-Themen 5
I String trennen und verschiedene Wörter holen Java Basics - Anfänger-Themen 6
B Verschiedene Objekte in 2 dimensionalem Array speichern Java Basics - Anfänger-Themen 10
S Datei ausführen, verschiedene Ordner Java Basics - Anfänger-Themen 2
O Verschiedene Farben in einer GUI Java Basics - Anfänger-Themen 15
R Klassen Mehrere/Verschiedene Objekte umcasten Java Basics - Anfänger-Themen 8
N Vererbung Verschiedene Subclasses nach cast zur Superclass unterscheiden Java Basics - Anfänger-Themen 9
D Verschiedene Fragen zu meinem Projekt Java Basics - Anfänger-Themen 6
S textPane verschiedene formatierungen Java Basics - Anfänger-Themen 8
K Verschiedene JDK´s paralell nutzen? Java Basics - Anfänger-Themen 3
M Verschiedene Möglichkeiten mit 'equals' abdecken? Java Basics - Anfänger-Themen 9
H 2 verschiedene Objekte in Liste mit Compareable sortieren Java Basics - Anfänger-Themen 7
N Verschiedene Klassen als Parameter elegant übergeben? Java Basics - Anfänger-Themen 4
X Listen und verschiedene Methoden Java Basics - Anfänger-Themen 6
B Zwei verschiedene Daten vergleich Java Basics - Anfänger-Themen 2
K Input/Output Verschiedene Ordner für Java u.v.m. Projekte Java Basics - Anfänger-Themen 3
G Umwandlung in verschiedene Zahlensysteme Java Basics - Anfänger-Themen 4
R Verschiedene Jar Versionen nutzen Java Basics - Anfänger-Themen 14
D Umgebungsvariable verschiedene Werte von JAVA_HOME? Java Basics - Anfänger-Themen 4
J verschiedene Anweisungen bei verschiedenen Zuständen Java Basics - Anfänger-Themen 9
F Info zwischen verschiedene Klassen austauschen Java Basics - Anfänger-Themen 4
Blindxantos Klassen in verschiedene Packages unterteilen Java Basics - Anfänger-Themen 2
F verschiedene Daten abspeichern Java Basics - Anfänger-Themen 13
N Verschiedene JFrames in einem JFrame anzeigen Java Basics - Anfänger-Themen 7
A Datentypen Verschiedene Threads synchronisieren Java Basics - Anfänger-Themen 3
D Mehrere verschiedene Farben pro fillRect Java Basics - Anfänger-Themen 3
M Verschiedene Werte in methoden Java Basics - Anfänger-Themen 3
K Verschiedene (Thread) Objekt-Positionen (int) in einem Array zusammenfassen Java Basics - Anfänger-Themen 3
J Verschiedene Rückgabetypen(int int char) Java Basics - Anfänger-Themen 10
J OOP verschiedene Objekttypen ablegen Java Basics - Anfänger-Themen 4
capgeti Verschiedene Rückgabetypen ohne Typecast möglich? Java Basics - Anfänger-Themen 7
S Verschiedene Arrays über Index aufrufen Java Basics - Anfänger-Themen 5
Developer_X in JEditorPane verschiedene Farben, verwenden Java Basics - Anfänger-Themen 7
C verschiedene Label auf Knopfdruck abrufen Java Basics - Anfänger-Themen 4
L Verschiedene Fonts für verschiedene Dialogelemente Java Basics - Anfänger-Themen 2
G Verschiedene Packages Java Basics - Anfänger-Themen 3
G Daten in verschiedene Listen schreiben Java Basics - Anfänger-Themen 5
C Zustandsanzeige durch verschiedene Klassen Java Basics - Anfänger-Themen 4
S verschiedene Versionen Java Basics - Anfänger-Themen 2
G Verschiedene Exceptions zu gleichem Block Java Basics - Anfänger-Themen 6
T verschiedene Anfängerfragen Java Basics - Anfänger-Themen 20
J Verschiedene Ausgaben bei gleichen Ausdrücken (Typecasting?) Java Basics - Anfänger-Themen 5
N Verschiedene Input/Output Klassen Java Basics - Anfänger-Themen 3
L verschiedene JPanel-Instanzen erstellen Java Basics - Anfänger-Themen 8
L 2 verschiedene Typen in einer Tabelle ablegen Java Basics - Anfänger-Themen 18
L verschiedene formuare in einem fenster öffnen Java Basics - Anfänger-Themen 8
R verschiedene dateitypen öffnen Java Basics - Anfänger-Themen 5
L verschiedene zeichen einlesen Java Basics - Anfänger-Themen 5
C 2 verschiedene Tables = 2 verschiedene Renderer ? Java Basics - Anfänger-Themen 5
S mit Buttons verschiedene Bilder laden Java Basics - Anfänger-Themen 4
S klassen in verschiedene Dateien Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben