welche Speichermethode verwenden?

Status
Nicht offen für weitere Antworten.

magic_halli

Bekanntes Mitglied
Hi,

ich möchte zur Laufzeit gewisse Sachen dynamisch abspeichern, um damit dann später zu arbeiten. Ich muss diese Werte so speichern, dass ich dann später auf jeden Datensatz zugreifen kann (bspw. über Index) und jeder Datensatz somit auch eindeutig identifizierbar ist!

Es müsste für meine Zwecke eigentlich so sein, dass ich irgendwie ein ArrayA habe, in dem mein 'Variantenname' (String) steht und ein weiteres ArrayB, in dem zu jedem Eintrag aus ArrayA verschiedene Sachen zugeordnet sind. Das wäre eigentlich perfekt für eine 'Datenbank mit 2 Tabellen' :wink: ... aber Datenbanken kommen nicht in Frage!

symbolisch; Bsp:
Code:
ArrayA                                     ArrayB
----------                                 ----------

[Index] <String>                           [Index] [Index_von_A] <String><Double>
                                           [Index] [Index_von_A] <String><Double>

speziell; Bsp:
Code:
ArrayA                                     ArrayB
----------                                 ----------

[0] sVariante1                             [0] [0] sName 5.3145
                                           [1] [0] sName2 3.1415
Ich hoffe, ich habe das einigermaßen verständlich rübergebracht?!
Leider weiß ich nicht recht, welche Speichermethoden ich hierfür nutzen muß, damit ich sowas realisieren kann. Der Ausdruck Array ist von mir hier erstmal eher symbolisch gemeint, da ich nicht weiß, ob man das mit ArrayListen, HashMaps, StringArrays etc. am besten lösen kann.

Was meint ihr?


Danke und Gruß.
 
T

tuxedo

Gast
Das war die Antwort. Das "?" sollte wohl nur ein verwirrtes "wie? du kennst hashmaps noch nicht?" zum Ausdruck bringen ;-) Aber natürlich sind das alles nur mutmaßungen meinerseits.

Nichts desto trotz: HashMaps oder ähnliches, gerade weil

...eindeutig identifizierbar...


- Alex
 

magic_halli

Bekanntes Mitglied
Doch, ich kenne HashMaps... Ich bin mir nur grade eben unschlüssig, wie das dann auf mein obiges Beispiel betrachtet, mit HashMap(<Key><Value>) funktionieren soll!
Ich hätte ja dann zu jedem Eintrag in HashMap A einen/mehrere Einträge in HashMap B drinstehen. In der HashMap B brauche ich ja erstmal zu jedem Eintrag die Zuordnung zu A und dann außerdem meine Values dazu! Ich habe ja aber als Values 2 Sachen zum Abspeichern (einmal String und Double)... weißt wie ich meine?

Ich wüßte jetzt nicht, dass das geht, da eine HashMap doch immer nur aus Key/Value-Paaren besteht und nicht Key/Value/Value... oder?!
 
T

tuxedo

Gast
Geschachtelte HashMaps?

-->

HashMap<String, HashMap<String, Double>>

Bezogen auf dein Tabellenbeispiel:

HashMap<Integer, HashMap<Integer, String>>

Der erste Integer gibt die Zeile an
Der zweite Integer gibt die Spalte an
Der String enthäklt den Inhalt der bezeichneten Tabellenzelle

Gruß Alex
 

magic_halli

Bekanntes Mitglied
...aaah ja. Geschachtelte HashMaps - macht Sinn. :wink:
Die "innere" HashMap hat aber auf jeden Fall mehr Datensätze als die "äußere" - geht das dann?! Boah, je länger ich darüber nachdenke, umso mehr komme ich durcheinander... dabei hab ich noch nichtmal mit programmieren begonnen. :roll:
 

magic_halli

Bekanntes Mitglied
"HashMap?" Weil deine Fragestellung nicht ganz eindeutig war (was sie mir immer noch nicht 100pro ist).
Mh, ich versuch das Problem mal anhand eines simplen Beispiels in Worten zu erklären:
Ich habe mehrere Autos. Zu jedem Auto möchte ich gewisse Eckdaten speichern, z.B. Leistung 150, Verbrauch 6.5, kmh 220.
Diese Daten lese ich für jedes Auto zur Laufzeit aus und möchte diese Abspeichern, um mir diese später wieder herzuholen und auszulesen. Die Frage war eben, welche Methodik verwende ich hierfür am besten?!
Mal ein Codebeispiel mit Pseudocode:
Code:
for(i=0;i<Anzahl_Autos,i++){
     String sAuto = Anzahl_Auto[i];     //bspw. "Golf"
     
     for(int j=0;j<Eckdaten_Auto;j++){
          String sName = Eckdaten_Auto.getName(j);     //bspw. Leistung
          Double dValue = Eckdaten_Auto.getValue(j);     //bspw. 150.0
          //nun das speichern dieser Eckdaten zu jedem Auto - das war eigentlich der Kern der Frage
          //ich hab bspw. 10Autos (sAuto) mit jeweils 5 Eckdaten hier erhalten
     }
}
So, jetzt hab ich mir nochmal richtig Mühe mit der Beschreibung gegeben?! :wink:
Das würde dann bedeuten, ich habe in der HashMap A 10 Datensätze, die wiederrum ihren Value aus HashMap B holen, welche ja dann 50 Datensätze hat.
 

magic_halli

Bekanntes Mitglied
Ja, das geht prima. Hab ich schon x-fach so gemacht.
Wie sieht denn dafür ein simples Grundgerüst aus, wenn ich verschachtelte HashMaps speichern will und dabei natürlich die Zugehörigkeit gewährleistet ist? Hast Du mal eben so ein Codesnipplet zur Hand? (Dann bekomme ich hoffentlich meinen Knoten aus dem Kopf!)
 

Joker

Bekanntes Mitglied
in dem Fall kannst du, wenn ich das richtig Verstanden habe, auf die Verschachtelte HashMap verzichten.

Stattdessen erstellst du eine Klasse "AutoDaten":

Code:
class AutoDaten {
    
    private int leistung;
    private float verbrauch;
    private int topspeed;

    public AutoDaten(int leistung, float verbrauch, int topspeed) {
       this.leistung=leistung;
       this.verbrauch=verbrauch;
       this.topspeed=topspeed;
    }
    public int getLeistung() {
        return leistung;
    }

    public void setLeistung(int leistung) {
        this.leistung = leistung;
    }

    public int getTopspeed() {
        return topspeed;
    }
   
    public void setTopspeed(int topspeed) {
        this.topspeed = topspeed;
    }

    public float getVerbrauch() {
        return verbrauch;
    }

    public void setVerbrauch(float verbrauch) {
        this.verbrauch = verbrauch;
    }
    
    
   
}

und eine HashMap mit:

Code:
HashMap<String, AutoDaten> carMap = new HashMap<String,AutoDaten>

neue Autos legst du z.B. so an:

Code:
carMap.put("Golf", new AutoDaten(150,7.5,200));

und kannst sie mit

Code:
AutoDaten carData = carMap.get("Golf");
System.out.println("Leistung: "+carData.getLeistung()); 
System.out.println("TopSpeed: "+carData.getTopSpeed());
System.out.println("Verbrauch: "+carData.getVerbrauch());

wieder ausgegeben, oder auch die Werte mit den set Methoden verändern. Wenn du dann in Zukunft noch mehr Daten speichern möchtest musst du nur sie nur in der Klasse AutoDaten hinzufügen und über die get/set Methoden nach außen bereitstellen.
 

ARadauer

Top Contributor
also wenn die eckdaten der autos immer ziehmlich gleich sind würd ich auch ein datenobjekt auto machen und dieses über einen schlüssel in die hashmap einordnen.

wenn die aber immer grundlegend verschieden eigenschaften hast, kann ja das auto eine hashmap beinhalten und dann sind die autos wieder in der hashmap drin. find ich ehrlich schöner, als einfach hashmaps in hashmaps abzulegen.
 

magic_halli

Bekanntes Mitglied
Mh, das mit dem Auto war mal von mir zum besseren Verständnis ein willkürlich gewähltes Beispiel! :oops:

Ich kann das nicht in einer Klasse machen, da ich vorher nicht weiß, wieviel Einträge zu einem Key aus HashMap A gehören können.
Da ich mein Java-Programm in Zusammenhang mit einem techn. Zeichenprogramm verwende, variieren, je nachdem was gerade für ein Modell geladen ist, auch diese Zuordnungen (Values --> entspricht quasi HashMap B - Einträge).
Also kann ich bspw. zu jeder Variante (=Key in A) 3 zugehörige Einträge (=Value in A bzw. dann Key/Value in B) haben... wenn ich dann ein neues Modell lade und mein Java-Programm erneut ausführe, können es durchaus 6 zugehörige Einträge sein usw. Also das ist echt voll dynamisch! ...und mir brummt inzwischen auch der Kopf!

Ich finde das ziemlich schwer zu erklären... hoffe es war halbwegs verständlich.
Schicke mir doch einfach mal so ein Codesegment von verschachtelten HashMaps (wie Du´s schon x-mal gemacht hast), damit ich mir das mal reinziehen und besser nachvollziehen kann. Das wäre prima :toll:

Gruß.
 
T

tuxedo

Gast
Wie der Herr wünschen ...

Code:
		// "Tabelle" basteln
		HashMap<Integer, HashMap<Integer, String>> table = new HashMap<Integer, HashMap<Integer, String>>();
		
		// "Zeile" Basteln
		HashMap<Integer, String> row0 = new HashMap<Integer, String>();
		for(int column=0; column<10; column++)
			row0.put(column, "i'am row 0 column "+column);

		// "Zeile" Basteln		
		HashMap<Integer, String> row1 = new HashMap<Integer, String>();
		for(int column=0; column<10; column++)
			row1.put(column, "i'am row 1 column "+column);

		// "Zeile" Basteln
		HashMap<Integer, String> row2 = new HashMap<Integer, String>();
		for(int column=0; column<10; column++)
			row2.put(column, "i'am row 2 column "+column);
		
		// Tabelle füllen
		table.put(0, row0);
		table.put(1, row1);
		table.put(2, row2);
		
		
		// Zelle aus Zeile 1 Spalte 4 holen
		System.out.println(table.get(1).get(4));

Ergebnis beim ausführen:

i'am row 1 column 4

Verstanden? Du kannst dir natürlich ein schicken "gerüst" drum rum basteln mit dem du direkt Zellen füllen und zellen lesen kannst. Aber das solltest du jetzt alleine hinbekommen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
Q SMS basierte Applikationen, welche Programmiersprache? Java Basics - Anfänger-Themen 8
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
H Welche Werte bei Objekterzeugung eingeben? Java Basics - Anfänger-Themen 2
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
tony241188 Implementieren Sie die Klasse Hersteller, welche die folgenden Elektrogeräte produziert Java Basics - Anfänger-Themen 3
FelixN Teilsummenproblem / welche Datenstruktur Java Basics - Anfänger-Themen 2
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
W Welche Komponente ist geeignet? Java Basics - Anfänger-Themen 1
A Welche Operation ist das? Java Basics - Anfänger-Themen 2
J Welche Java-Version installieren Java Basics - Anfänger-Themen 9
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
K GUI Entwicklung - Welche Richtung passt für euch zum mobilen Zeitalter? Java Basics - Anfänger-Themen 4
T Datenbank | Welche am Sinnvollsten? Java Basics - Anfänger-Themen 5
S Welche Verteilung? Java Basics - Anfänger-Themen 1
L Welche Methode? Java Basics - Anfänger-Themen 7
O Methoden welche ich implementier Java Basics - Anfänger-Themen 11
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
M JDK installieren Welche Software bei XP? Java Basics - Anfänger-Themen 5
H Welche IDE zum Buch "Programmieren mit Java" von Reinhard Schiedermeier des Verlags Pearson Studium Java Basics - Anfänger-Themen 19
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
E jProgressbar, 6 Versuche, welche value angeben ? Java Basics - Anfänger-Themen 3
M Welche Entwicklungsumgebung? Java Basics - Anfänger-Themen 32
I Welche Schleife/Bedingung nehme ich her Java Basics - Anfänger-Themen 5
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
K Erste Schritte Java lernen - Welche Bücher? Java Basics - Anfänger-Themen 1
P welche Komponente ist im Layout? Java Basics - Anfänger-Themen 2
TheMenox Methoden Bestimmung an welche Methode eine andere Methode ihren Wert weitergeben soll Java Basics - Anfänger-Themen 35
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
J Welche Methoden laufen im neuen thread ?? Java Basics - Anfänger-Themen 9
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
G Welche Java-Version auf meinem Rechner? Java Basics - Anfänger-Themen 2
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
A Klassen welche Klassen importiert Eclipse automatisch Java Basics - Anfänger-Themen 2
V welche Methode am besten sich für JPG einfügung in Java anzugewöhnen ? Java Basics - Anfänger-Themen 4
M Welche externen Bibliotheken sind in Java sehr zu empfehlen? Java Basics - Anfänger-Themen 4
I Grafische Benutzeroberflächen - welche Komponente nehme ich am besten? Java Basics - Anfänger-Themen 13
G Welche JAVA IDE? Java Basics - Anfänger-Themen 3
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
E wann welche Konstanten verwenden? Java Basics - Anfänger-Themen 7
K Welche Java Version ist die richtige Java Basics - Anfänger-Themen 3
V Welche Exceptions müssen importiert werden? Java Basics - Anfänger-Themen 3
A Design Pattern - Welche? Java Basics - Anfänger-Themen 33
C Datenbank - Welche Java Basics - Anfänger-Themen 5
S Welche Art von Liste? Java Basics - Anfänger-Themen 3
S Eigene Exception Schreiben und Welche Auslösen wie ? Java Basics - Anfänger-Themen 7
A Wenn genau welche Liste verwenden? Java Basics - Anfänger-Themen 6
T Welche Schleife? Java Basics - Anfänger-Themen 6
P Java Stream, wann welche Stream verwenden? Java Basics - Anfänger-Themen 3
S Collections Welche Collection ist am geeignetsten? Java Basics - Anfänger-Themen 3
S Input/Output Welche Möglichkeiten Eingabe von User abfragen Java Basics - Anfänger-Themen 5
P Swing - Welche Klasse für ausgeben von Ergebnissen? Java Basics - Anfänger-Themen 3
R Welche Datenstruktor für diese Liste? Java Basics - Anfänger-Themen 6
B Erste Schritte Welche Kenntnisse brauche ich für diese Programmidee? Java Basics - Anfänger-Themen 4
P Vererbung herausfinden welche Klasse was erbt Java Basics - Anfänger-Themen 3
K welche art von Liste für TableModell Java Basics - Anfänger-Themen 2
D Welche API für komplexe XML-Struktur? Java Basics - Anfänger-Themen 25
S welche Programmstruktur? Java Basics - Anfänger-Themen 8
M Welche Datenbank? Java Basics - Anfänger-Themen 5
B Welche Themengebiete benötige ich? Java Basics - Anfänger-Themen 7
StupidAttack Gson, welche Datenstruktur? Java Basics - Anfänger-Themen 4
S Welche Collection kann sich selber sortieren? Java Basics - Anfänger-Themen 8
H Welche Art der Ein/Ausgabe Java Basics - Anfänger-Themen 2
D Welche Datenstruktur für welche Problemstellung? Java Basics - Anfänger-Themen 10
U Welche(s) Framework(s) wären geeignet? Java Basics - Anfänger-Themen 8
StrikeTom Welche Dateitypen unterstützt JMF (Java Media Framework)? Java Basics - Anfänger-Themen 6
S Welche Collection? Java Basics - Anfänger-Themen 5
A Welche UML Software benutzt ihr / ist empfehlenswert? Java Basics - Anfänger-Themen 2
N Welche Datenstukturen und Methoden Java Basics - Anfänger-Themen 3
L Auswahl auf welche Art gespeichert werden soll Java Basics - Anfänger-Themen 6
B Welche Java-Installation ist aktiv? Java Basics - Anfänger-Themen 2
B Finden gemeinsamer Kanten: welche Datenstruktur ? Java Basics - Anfänger-Themen 9
S Welche möglichkeiten gibt es eine Zahl zu spiegeln? Java Basics - Anfänger-Themen 17
U Welche Seite für Anfänger Java Basics - Anfänger-Themen 11
K Welche Entwicklungsumgebung für Einsteiger? Java Basics - Anfänger-Themen 16
S Webapplikation welche alternative zu gwt? Java Basics - Anfänger-Themen 2
cowabunga1984 Unit-Testing - Welche Testfälle sind relevant? Java Basics - Anfänger-Themen 4
S Welche Methode in JFrame überschreiben? Java Basics - Anfänger-Themen 12
H Designfrage: Welche Liste? Java Basics - Anfänger-Themen 3
Z Welche IO-Klasse verwenden? Java Basics - Anfänger-Themen 2
G Welche Datenstruktur ( Sets / Maps)? Java Basics - Anfänger-Themen 10
M Der Java Schlüsselwort null; ?Welche Anweisung und Sinn? Java Basics - Anfänger-Themen 12
G Herausfinden, welche Componente als LETZTES focus hatte Java Basics - Anfänger-Themen 2
H Welche PDF Biblothek? Java Basics - Anfänger-Themen 6
G Variable welche in anderer Klasse liegt, verändern. Java Basics - Anfänger-Themen 2
G Frage:Welche Methodne kann man eine Zahl bzw. ein String Java Basics - Anfänger-Themen 3
U Welche Datenstruktur soll ich nehmen? Java Basics - Anfänger-Themen 11
K Welche Exception? Java Basics - Anfänger-Themen 6
G Welche Datenstruktur ist hier die sinnvolste Java Basics - Anfänger-Themen 6
G welche Teile der api sind wichtig? Java Basics - Anfänger-Themen 3
K Welche methoden gibt es in Java um Zahlen von der Java Basics - Anfänger-Themen 11
G welche Java-Technologie für JDBC geeignet Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben