Wertepaar speichern

Otz

Bekanntes Mitglied
Hallo zusammen,

ich habe eine kleine Frage und bräuchte mal eure Hilfe.
Ich habe einige Wertepaare bestehend aus zwei Strings die ich speichern möchte.
Beispiel:
Attribut1 Wert1
Attribut2 Wert2
Attribut2 Wert3
Attribut2 Wert4
...

Mit welcher Datenstrucktur macht man sowas am besten?

Was haltet ihr von einer Hashtable in die ich als key das attribut reinlege und die verschiedenen werte als liste oder ähnliches ablege?!

danke im voraus
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Hashmap z.B

o. Hashtable, kommt halt drauf an was genau du in der list hinterlegen willst und genau du mit den werten später machen möchstest
 
Zuletzt bearbeitet:

kaoZ

Top Contributor
Wenn du von mehreren threads aus auf die liste zugreifen musst nutze hashtable da diese synchronized ist, falls du nur einen thread haben solltest dann nimm die hashmap da diese durch die nicht notwendige synchronisation etwas performanter ist :)
 

Otz

Bekanntes Mitglied
ok vielen dank.

ich erkläre euch mal noch auf die schnelle was ich machen möchte!


also ich habe eine menge an datensätzen mit verschiedenen attributen. z.b. bilder und videos.
diese daten haben verschiedene attribute z.b. größe, aufnahmedatum, ...

jetzt möchte ich mir eine art suchoberfläche dafür erstellen die mir alle attribute zur eingrenzung als filter auflistet. und je nachdem was ich auswähle möchte ich eine ergebnismenge immer weiter eingrenzen.


also mache ich mir eine hashtable in der ich als key das aufnahmedatum schreibe und als value eine liste mit allen aufnahmedatums und das für jedes attribut. diese attribute können dann vom nutzer ausgewählt werden und fließen dann in die ergebnissmenge mit ein.

würdet ihr das immer noch mit einer hashtable machen oder bietet sich hierfür etwas anderes besser an?!
 

DrZoidberg

Top Contributor
In dem Fall kannst du auch eine ArrayList nehmen. Jeder Eintrag in der Liste ist dann ein Wertepaar(dafür müsstest du dann eine Wertepaar Klasse erstellen).
Um doppelte Einträge zu vermeiden kannst du ein HashSet verwenden.
Du erstellst ein leeres HashSet, gehst durch sämtliche Einträge, die ausgewählt wurden und verwendest die HashSet.addAll Methode um alle Bilder des aktuellen Attributes hinzuzufügen.
Oder mathematisch ausgedrückt - du erstellst du Schnittmenge aller Mengen an Bildern, die zu den ausgewählten Attributen gehören.
 

ARadauer

Top Contributor
Warum erstellst du die Hashmap/table nicht einfach mit einer referenz auf den Dateinamen deins Bildes ?

weil er nicht das bild braucht sondern die verschiedenen werte der einzelnen Attribute... oder?

Im Grunde wäre eine HashMap mit einem Set darin passend...

zb so...

Java:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;


public class Person {
	
	private String vorname;
	private String nachname;
	

	private Person(String vorname, String nachname) {
		super();
		this.vorname = vorname;
		this.nachname = nachname;
	}

	
	
	public String getVorname() {
		return vorname;
	}

	public void setVorname(String vorname) {
		this.vorname = vorname;
	}

	public String getNachname() {
		return nachname;
	}

	public void setNachname(String nachname) {
		this.nachname = nachname;
	}


//ab hier sollte das natürlich in eine andere klasse, aber da bin ich jetzt zu faul..
	private static Map<String, Set<String>> attributes = new HashMap<String, Set<String>>();
	
	public static void main(String[] args) {
		List<Person> personen = new ArrayList<Person>();
		personen.add(new Person("Franz", "Huber"));
		personen.add(new Person("Josef", "Huber"));
		personen.add(new Person("Josef", "Müller"));
	
		for(Person p: personen){
			addValue("Vorname", p.getVorname());
			addValue("Nachname", p.getNachname());
		}
		
		
		System.out.println("Vorhandene Werte...");
		for(String attribute : attributes.keySet()){
			System.out.println(attribute);
			for(String value : attributes.get(attribute)){
				System.out.println(" "+value);
			}
		}		
	}
	
	public static void addValue(String attribute, String value){
		Set<String> values = attributes.get(attribute);
		if(values == null){
			values = new HashSet<String>();
			attributes.put(attribute, values);
		}
		values.add(value);
	}
}
 
Zuletzt bearbeitet:

Otz

Bekanntes Mitglied
hab mich heute morgen nochmals bischen mit diesem problem beschäftigt und glaube, dass deine lösung wirklich ganz passend ist.

jedoch stehe ich jetzt vor einem weiterem problem bei dem ich euren rat bräuchte :autsch:

nehmen wir an: ich habe jetzt von 100 bildern die attribute wie z.b. aufnahmedatum, größe... in einer hashmap gespeichert. jetzt wählt der nutzer über die gui ein bestimmtes aufnahmedatum aus, nach dem er filtern möchte. also er möchte nur bilder angezeigt bekommen, die an diesem aufnahme datum erstellt wurden.

muss ich da jetzt wieder meine komplette ergebnissmenge durchgehen und jedes mal das datum überprüfen? oder gibt es da irgendeine andere möglichkeit dies irgendwie schneller zu erledigen?!
 

DrZoidberg

Top Contributor
Genau das ist der Zweck der HashMap.
Die Attribute (z.B. Aufnahmedatum) sind die Schlüssel der HashMap und die Bilder die Werte, nicht umgekehrt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
hennskand Brauche Hilfe Zwischenzustände von Objekt aus rekursiver Methode speichern Java Basics - Anfänger-Themen 6
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
G JTree speichern und wieder einlesen Java Basics - Anfänger-Themen 5
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
J Objekte in JSON speichern?? Java Basics - Anfänger-Themen 1
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
I Objekte in ShareProject speichern um später zu nutzen Java Basics - Anfänger-Themen 4
I Passwort in Datenbank speichern um später wieder auszulesen Java Basics - Anfänger-Themen 5
S mehrere TreeSets so speichern, dass man sie miteinander vergleichen kann Java Basics - Anfänger-Themen 1
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Werte in Felder speichern und geordnet ausgeben Java Basics - Anfänger-Themen 8
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
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
I Historisierung - Alter Wert, Neuer Wert... wie speichern? Java Basics - Anfänger-Themen 44
berserkerdq2 Wie datum im default format speichern? Java Basics - Anfänger-Themen 5
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
f3mys Objektwerte in Liste speichern und wieder abrufen Java Basics - Anfänger-Themen 23
I Liste von Infos von einer eigenen Annotation in Liste speichern Java Basics - Anfänger-Themen 0
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
B Screenshots machen und zwar viele und speichern Java Basics - Anfänger-Themen 12
C XML Datei speichern und laden Java Basics - Anfänger-Themen 18
Marlena Bauer Konsolenausgabe in .txt speichern Java Basics - Anfänger-Themen 6
B JaxB - Property vom Typ Object und LocalDateTime speichern? Java Basics - Anfänger-Themen 0
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
J Wert in einer json Datei ändern und speichern Java Basics - Anfänger-Themen 3
C File speichern Java Basics - Anfänger-Themen 5
D String und char in String speichern Java Basics - Anfänger-Themen 5
J Alle .java Dateien von einem Verzeichnis in eine Zip speichern Java Basics - Anfänger-Themen 2
I Werte (u.a. Geldbeträge) in Datenbank speichern und Rundungen? Java Basics - Anfänger-Themen 8
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
B JaxB - speichern vom Typ "Object" Java Basics - Anfänger-Themen 8
GermanPie Nachrichten Speichern Java Basics - Anfänger-Themen 2
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Wo Defaultpfad speichern? Java Basics - Anfänger-Themen 2
M Integer aus aus einer Klasse in andere speichern Java Basics - Anfänger-Themen 12
Dimax stream in string[] speichern Java Basics - Anfänger-Themen 6
H Liste speichern. Was lässt sich verbessern? Java Basics - Anfänger-Themen 7
C Fehler beim Speichern (Build projekt) Java Basics - Anfänger-Themen 42
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
D Input/Output Input von zwei Koordinaten validieren und anschließend Werte speichern Java Basics - Anfänger-Themen 7
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
I ArrayList - Methode zum Speichern eines Eintrags in einer Datei Java Basics - Anfänger-Themen 17
H Objekt im Array speichern Java Basics - Anfänger-Themen 2
H Objekt als Attribut speichern Java Basics - Anfänger-Themen 11
B Text-Datei nur in Stream speichern und dann ausgeben Java Basics - Anfänger-Themen 3
M JTextField in ArrayList speichern Java Basics - Anfänger-Themen 4
L Nur Bestimmte Werte aus einem Array in ein anderes Speichern Java Basics - Anfänger-Themen 11
S Zweidimensionales Array in ein eindimensionales Array speichern Java Basics - Anfänger-Themen 6
A Wie zwei zahlen in einer Variable speichern? Java Basics - Anfänger-Themen 7
C ResultSet in Array speichern Java Basics - Anfänger-Themen 5
S Byte-Array kann chars speichern? Java Basics - Anfänger-Themen 3
J Kann man files in einer Klasse speichern. Java Basics - Anfänger-Themen 2
B Infos zu Attribute in einer Klasse speichern Java Basics - Anfänger-Themen 3
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15
A Kann man eine Methode als Variable speichern und danach noch verändern? Java Basics - Anfänger-Themen 6
D Werte aus einem BinärBaum in einem Array speichern Java Basics - Anfänger-Themen 1
I Datei in Programm speichern Java Basics - Anfänger-Themen 3
A .txt-Datei mit Java speichern Java Basics - Anfänger-Themen 2
M Speichern unter. Java Basics - Anfänger-Themen 11
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Objekt aus Textdatei in ArrayList speichern Java Basics - Anfänger-Themen 4
L Kommandozeileneinträge in Array speichern Java Basics - Anfänger-Themen 4
B HTML Code in XML speichern Java Basics - Anfänger-Themen 3
G Benutzereingaben durch Zeilenumbruch trennen und in Array individueller Größe speichern Java Basics - Anfänger-Themen 20
G JTextField per Button speichern und an andere Klasse übergeben Java Basics - Anfänger-Themen 2
Shallty Daten speichern und ändern? Java Basics - Anfänger-Themen 32
R Objekte aus Array als String + kommasepariert speichern Java Basics - Anfänger-Themen 12
N Best Practice Rückgabe eines Terminal Befehls in eine Variable speichern Java Basics - Anfänger-Themen 27
B XML in DB speichern -> Regelkonzept Java Basics - Anfänger-Themen 2
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
A Einträge aus Tupeln nach Regeln in Liste speichern Java Basics - Anfänger-Themen 8
void19 Methoden Binärbaum Inorder Traversierung in Array speichern Java Basics - Anfänger-Themen 1
X TextField-Inhalt mit Button in .txt-Datei speichern Java Basics - Anfänger-Themen 16
C Methoden Problem beim Speichern von Variablen Java Basics - Anfänger-Themen 1
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10
K Geburtsdaten von Mehreren Personen speichern und Alter ausgeben Java Basics - Anfänger-Themen 11
F Beste Datenstruktur zum Speichern? Java Basics - Anfänger-Themen 1
Dimax Programme ,als Text in MySql speichern Java Basics - Anfänger-Themen 7
C Erste Schritte ArrayIndexOutOfBoundsException beim Speichern im Array Java Basics - Anfänger-Themen 2
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
D Erste Schritte Projekt in Ecplise in einer .zip Datei speichern Java Basics - Anfänger-Themen 8
L Speichern und Laden Java Basics - Anfänger-Themen 7
I Projekt als .jar Datei speichern - Bilder werden nicht mehr angezeigt Java Basics - Anfänger-Themen 4
H MouseListener begrenzen und Speichern Java Basics - Anfänger-Themen 1
M Wie kann ich im JAVA-GUI im Textfeld ein Array speichern Java Basics - Anfänger-Themen 4
N Veränderungen dauerhaft speichern Java Basics - Anfänger-Themen 3

Ähnliche Java Themen


Oben