Array[HashMap][ArrayList][ArrayList]

sign

Bekanntes Mitglied
Hallo, ich brauch ein array in das ich eine HashMap eine ArrayList und eine ArrayList packen kann.
Was nehme ich da am besten.
lg
 
Was willst du??? Das Subject zeigt einen 3D Array.

Abgesehen davon, dass es sicher ein Designfehler ist wenn man so etwa machen muss - ein Object[][][] speichert alles.
 
was ich möchte:
array[0][0] soll eine HashMap enthalten
array[0][1] eine ArrayList
array[0][2] eine ArrayList

array[1][0] soll eine andere HashMap enthalten
array[1][1] eine andere ArrayList
array[1][2] eine andere ArrayList

wieso Designfehler???

new Object[3] hört sich gut an aber wie bekomm ich z.B. meine HashMap nach Object[0]??
 
Weil man so etwas nicht macht. Du könntest dir eine eigenen klasse erstellen,die die 3 Listen hält und eine Array in das du dann diese Objecte steckst.
 
dito @ meine Vorredner, und wenn dus doch so machst, dann bekommst du deine HashMap in ein Array, so wie man eben alle Sachen in ein Array bekommt... Array[index] = das-was-da-rein-soll-und-vom-Typ-auch-rein-kann ...
 
Java:
public class HashMapArrayListWhatEver {

            private List<...> ersteListe;
            private List<...> zweiteListe;
            private Map<..., ...> map;

            // Konstruktoren und Methoden zum Füllen der Attribute

}

Java:
HashMapArrayListWhatEver[] array = new HashMapArrayListWhatEver[...];
 
new Object[3] hört sich gut an aber wie bekomm ich z.B. meine HashMap nach Object[0]??
einfach hineinspeichern, schon ausprobiert?

für mehrere derartige 3er-Datensätze dann zwei Dimensionen: new Object[20][3] für 20x sowas oder eine Liste von new Object[3],
oder natürlich besser eine Klasse für die drei Einträge
 
Java:
        Object megaList[][] = new Object[5][3];
        megaList[0][0] = myHashMap;
ist genau das was ich wollte.
Designfehler: hab nun verstanden was ihr meint. Meine megaList ist nicht Typsicher. Bei der Klassenlösung wird die Typsicherheit über den Konstruktor gelöst.
Java:
Integer one = (Integer)(HashMap)megaList [0][0].get("one"); //kompeliert natürlich nicht nur Beispiel-Gedanke für schlechtes Design

Ich werd auf jeden Fall den Klassen weg gehen da ich in meiner Situation die Daten dann gar nicht mehr in eine HashMap, ArrayList packen muss. Kann die Daten direckt in der Klasse halten. Somit wär dann auch dem Design genüge getan.
Danke für eure Hilfe.
lg
 
Ich werd auf jeden Fall den Klassen weg gehen da ich in meiner Situation die Daten dann gar nicht mehr in eine HashMap, ArrayList packen muss. Kann die Daten direckt in der Klasse halten. Somit wär dann auch dem Design genüge getan.

weiß nicht, was das eine mit dem anderen zu tun haben soll und die Lösung mit dem 2D Object Array ist auch alles andere als gut. Das haben die anderen imho nur gepostet, weil es die "direkte" Antwort auf deine Frage war aber es wurde auch oft genug gesagt, dass das kein guter Weg ist.
 
weiß nicht, was das eine mit dem anderen zu tun haben
der andere Baum im Wald?

die Lösung mit dem 2D Object Array ist auch alles andere als gut. Das haben die anderen imho nur gepostet, weil es die "direkte" Antwort auf deine Frage war aber es wurde auch oft genug gesagt, dass das kein guter Weg ist.
Designfehler: hab nun verstanden was ihr meint. Meine megaList ist nicht Typsicher. Bei der Klassenlösung wird die Typsicherheit über den Konstruktor gelöst.
Ja 2D Object Array ist keine gute Lösung. Ist nicht Typsicher -> Designfehler. Gerne darf man mir auch noch einen anderen Standpunkt erläutern warum das ein Designfehler ist.

Was du mir allerdings erzählen willst ist mir ein Rätzel?
 
Was du mir allerdings erzählen willst ist mir ein Rätzel?

das was dir alle hier versuchen zu erzählen:

Mach ein eigenes Objekt wo du map und die zwei listen drinnen hast und diese objekte hälst du wieder in einer liste

oder natürlich besser eine Klasse für die drei Einträge

Java:
public class HashMapArrayListWhatEver {

            private List<...> ersteListe;
            private List<...> zweiteListe;
            private Map<..., ...> map;

            // Konstruktoren und Methoden zum Füllen der Attribute

}

Java:
HashMapArrayListWhatEver[] array = new HashMapArrayListWhatEver[...];

aber egal. wenn du mit der lösung zufrieden ist, soll uns das recht sein. war nur ein nett gemeinter hinweiß
 
was ich möchte:
array[0][0] soll eine HashMap enthalten
array[0][1] eine ArrayList
array[0][2] eine ArrayList

array[1][0] soll eine andere HashMap enthalten
array[1][1] eine andere ArrayList
array[1][2] eine andere ArrayList

wieso Designfehler???

new Object[3] hört sich gut an aber wie bekomm ich z.B. meine HashMap nach Object[0]??



Java:
public class HashMapArrayListWhatEver {
 
            private List<...> ersteListe;
            private List<...> zweiteListe;
            private Map<..., ...> map;
 
            // Konstruktoren und Methoden zum Füllen der Attribute
 
}
Java:
HashMapArrayListWhatEver[] array = new HashMapArrayListWhatEver[...];

ich wieß jetzt nicht mehr ganz wo das Problem liegt, aber wenn es noch immer vorhanden ist so wie du es in deinem Post oben beschreiben hast, dann hat dir nrg bereits die Lösung gepostet.


Edit: zu langsam
 
@nrg erstmal noch mal Danke.
Ich weiß schon gar nicht mehr wie ich dir klar machen soll dass ich deinen genannten Ansatz verstanden habe. Ich hab auch verstanden warum das 2D Array einige als Designfehler ansehen. Steht alles im "Heute 11:06" von mir.

Das ich deinen Ansatz durchdacht und verstanden habe sollte dir nach untenstehender Aussage eigentlich klar sein.
Bei der Klassenlösung wird die Typsicherheit über den Konstruktor gelöst.
ja es könnte auch ein setter sein.

Das ich aufgrund der Antworten davon abgekommen bin ein Object 2D Array zu nutzen steht auch im Post von 11:06. Stattdessen löse ich dies nun über eine Klasse/Objekt/Instanz. Zwar nicht so das ich die HashMap bzw.
die Arrays in die Klasse/Object/Instans packe, sonder die Daten direkt ohne Array, HashMap in der Klasse/Objekt/Instanz halte. Steht auch so im Post von 11:06.

Bevor du wieder vom anderen Baum im Wald redest lies dir bitte noch mal den Post von 11:06 durch.

Ich werd auf jeden Fall den Klassen weg gehen da ich in meiner Situation die Daten dann gar nicht mehr in eine HashMap, ArrayList packen muss. Kann die Daten direckt in der Klasse halten. Somit wär dann auch dem Design genüge getan. .
Kürze diesen Satz auf „Ich werd auf jeden Fall den Klassenweg gehen.“ vielleicht verwirrt dich der Rest.

Btw: es gibt kein Problem mehr. Dies wurde dank der Posts vor 11:06 gelöst. Den Ansatz die HashMap, ArrayLists direkt in ein Klasse/Objekt/Instanz zu packen habe ich verworfen! Stattdessen halte ich die Daten direkt in der Klasse. Sollte die letzten beiden Satze dazu führen wieder das andere zu sehen oder zu suchen. Bitte diese Sätze vergessen.
Lg
 
Java:
        Object megaList[][] = new Object[5][3];
        megaList[0][0] = myHashMap;
ist genau das was ich wollte.
Designfehler: hab nun verstanden was ihr meint. Meine megaList ist nicht Typsicher.

hier bin ich davon ausgegangen, dass du diese lösung vorziehst 🙂.

wie auch immer. wenn du es verstanden hast, um was es geht, ists gut. viele im forum schreiben nämlich wirre sachen und verstehen einfach nicht, um was es geht. War ja jetzt nicht der einzige, der dich da missverstanden hatte. aber gut, hat jetzt nichts mehr mit dem thema zu tun und möchte da jetzt auch nicht weiter rumdiskutieren. solange dir geholfen ist und dein problem damit erledigt ist, ist das ja jetzt ok 😉
 
Java:
        Object megaList[][] = new Object[5][3];
        megaList[0][0] = myHashMap;
ist genau das was ich wollte.
genau das was ich furchtbar finde ;-)

Es geht nicht nur um Typsicherheit. Es geht um Semantik! Eine Liste mit Abteilungen, die Angestellte beinhalten die aus name, alter und gehalt bestehen ist 1000 mal besser als ein dreidimensionales array Object[][][]

also nochmal Was stellen die daten dar?
 

Neue Themen


Zurück
Oben