Spalten vergleichen Java

OnDemand

Top Contributor
Hallo zusammen, kann mir jemand auf die Sprünge helfen?

Ich habe 2 csv Dateien. In Datei A:

Spalte A = ID
Spalte B = Modellnummer

Datei B:

Spalte A= Modellnummer
+ weitere Spalten

Ich muss nun die beiden Dateien einlesen und aus der Datei B, bestimmte Werte aus den Spalten D, E, F an die ID aus Datei A anhängen.

Ich hab grad null Plan, wie ich beide Dateien vergleichen kann.

Quasi, wenn ich Datei B Modellnummer "123" steckt, soll es die ID aus Datei A zugeordnet bekommen.

Hoffe mir kann jemand folgen :p

Wäre für jeden Tipp dankbar, wie ich die Dateien zusammenbringen bringen kann.
 

BRoll

Bekanntes Mitglied
Auf jeden Fall musst du beide Dateien einlesen.
Je nach Anforderung würde ich beide Dateien komplett einlesen
und in eine Array oder HashMap so hinzufügen, dass der Key davon die ID der Zeile ist.
So kannst du einfach über den Key die Werte der Felder auslesen.
 

BRoll

Bekanntes Mitglied
Ja für beide Dateien HashMaps anlegen in denen du dann die Werte anhand der ID
als Key einsortierst.
Dann kannst du einfach über die Keys zwischen in den Maps die verschiedenen Daten raussuchen.
Id soll ja hier der Primärschlüssel sein so wie ich das versteh?
 

OnDemand

Top Contributor
Hi die id ist nur in einer datei drin. In datei b sind noch weitere werte, die der passenden id zugeordet werden mussen.

Mit einer hashtable konnte ich jetzt schonmal die id und modellnummer verbinden, jetzt muss ich nur noch die zusatzwerte an die passende id zuordnen. Garnicht mal so einfach

Gesendet von meinem GT-P5110 mit Tapatalk
 

JavaMeister

Gesperrter Benutzer
Garnicht mal so einfach

Doch ist einfach. Aber in der heutigen Zeit posten alle Leute ihre Probleme in Foren und erwarten eine Lösung, die natürlich zu solch einfachen Problemen recht schnell kommt.

Aber der Lernfaktor ist null. Und das sieht man an diesem Beitrag.

Und wenn ich dann lese:

Gesendet von meinem GT-P5110 mit Tapatalk

Dann denke ich mir: WTF? - Derjenige, der hier so Hilfe erwartet ist irgentwo unterwegs und hat andere sorgen, als diese Sachen hier und kann sich ehh nicht vernünftige Gedanken dazu machen.

==> Mein Tipp: Wenn man wirklich sowas professionell machen möchte, dann muss man da 100 % Aufmerksamkeit und min. 3-4 Stunden täglich investieren, damit das zu einem brauchbaren Erfolg führt.
 

OnDemand

Top Contributor
Herr Java Meister. 1. War ich ich meinem Bett unterwegs 2. Hab ich nicht nach Senf gefragt. Wer noch was sinnvolles zur Ursprungsfrage beitragen kann: Danke.
 

OnDemand

Top Contributor
Moin, entschuldige aber wenn ich früh am morgen sowas lese, wo jemand über einen urteilt obwohl er keinen Plan hat, wie viel Aufmerksamkeit man wirklich rein steckt...find ich das bisschen respektlos und unfair.

Fühl dich bitte nicht angegriffen ;)
 

JavaMeister

Gesperrter Benutzer
.find ich das bisschen respektlos und unfair

So ein quatsch. Das was ich geschrieben habe nennt man "Kritik". Wenn man das in der heutigen Zeit mit repektlosigkeit und unfairness gleich setzt, dann sollte man nicht in öffentlichen Foren posten.

---

Aber zeig mal, was du bisher hast, um das Problem abzuschließen.
 

OnDemand

Top Contributor
Das einlesen in die Hashmap klappt. Wenn ich map.get(modellnummer) aufrufe, bekomme ich die passende ID, das funktioniert gut.

Jetzt kommt das größere Problem:

Datei B hat die modellnummer+länge+breite+höhe, was da drin fehlt ist die passende ID zur Modellnummer.

Soll heißen, wenn modelnummer aus der Hashmap in Datei B gefunden wird, soll die ID dazu geschrieben werden. Oder besser noch andersrum, wenn die modellnummer in Datei B gefunden wird, soll die höhe+breite+länge in Datei A zur passenden Modellnummer geschrieben werden.

Sollte das mit equals() machbar sein?

Java:
if(modelnummerDatei1.equals(modellnummerDatei2) {
system.out.println(modellnummerDatei1+map.get(modelnummerDatei1);
}
 

JavaMeister

Gesperrter Benutzer
Viel zu kompliziert.

1. Du machst eine Bean (e.g. Ware) mit den notwendigen Inhalten:

- ID # muss in beiden Dateien enthalten sein und entweder "fremdschlüssel" oder "Primärschlüssel" sein.
- breite, höhe, preis

2. Du liest die Datei ein, die zu jeder Modellnummer die entsprechenden Metadaten hat.

Damit erzeugst du instanzen von Ware und schreibst diese ind ie HashMap<String, Ware>.

3. Für jede Ware aus deiner Datei A, kannst du nun folgendes machen.

HashMap.get(ID) und erhälst alle Metadaten.

Diese kannst du dann als normale Komposition in anderen Klassen nutzen.
 

OnDemand

Top Contributor
Das klingt gut-Ich werde berichten. Danke! Aber was ist bitte eine Bean? :D:D Hab ich noch nie gehört!
 
Zuletzt bearbeitet:

OnDemand

Top Contributor
Das Wort "Bean" ist mir noch nie untergekommen, selbst im Zusammenhang mit deren Bedeutung nicht. Ist das ein offizieller Begriff dafür? Steht in meinen Bücher nicht mal drin!
 

OnDemand

Top Contributor
Ich hab mich grad belesen, dass Beans nur einen leeren Konstruktor haben? Wie soll ich denn dann eine sinnvolle Instanz davon bilden?

Edit: Oder muss auf jeden Fall ein leerer Konstruktor sein, welchen ich aber überschreiben kann?!
 
Zuletzt bearbeitet:

OnDemand

Top Contributor
Java:
while ((line = readerID.readLine()) != null) {
			String parts[] = line.split(";");
			farbeNeuerArtikel = parts[0];
			artikelNeuerArtikel = parts[1];

			Artikel artikel = new Artikel();
			artikel.setArtikelNummer(artikelNeuerArtikel);
			artikel.setFarbe(farbeNeuerArtikel);
			System.out.println(artikel.getArtikelNummer());

Aber das mit dem Artikel-erzeugen scheint mir noch nicht sinnvoll. Wäre es nicht besser den Konstruktor Artikel mit Parametern (Artikel(String farbe, artikelnummer) ) zuparametrisieren?

Java:
new Artikel(farbeAusDatei, preisAusDatei);
 

JavaMeister

Gesperrter Benutzer
In diesem Fall ja, aber in allen anderen Fällen nicht. Bitte bachte, dass im Sinne eines Clean Code nicht mehr als 3 Parameter pro Methode / Konstruktor verwendet werden sollen.

Jetzt hast du eine Liste von Artikeln.

Du kannst diese nun in einer HashMap Speichern, um schneller zuzugreifen.

Anschließend kann man diese normal verwenden.
 

OnDemand

Top Contributor
Soooo ich hab es hinbekommen. Sieht jedenfalls gut aus, was ich bisher getestet habe.

Noch ne Frage bezgl. deiner Bemerkung Clean Code...Ich muss in meinem Programm unter anderem Auch solche Objekte "Ware" erstellen, mit mehr als 20 Parametern/Attributen.

Wie sollte man denn sowas nach "CleanCode" handhaben?
 

OnDemand

Top Contributor
Hi JavaMeister, mach ich dann gerne. Aber nun kam ein neues Problem, super!
Die Dateien werden demnächst umstrukturiert und haben dann den Aufbau siehe Bilder.

Das heißt jedes Modell hat die selbe Artikelnummer, mit verschiedenen Attributen. In Datei A, ist diese Artikelnummer nur einmal drin, was sich in Datei B aber ändern wir (je Farbe kommt der Artikel mit der selbern Nummer hinzu). :bloed:

Hab es schon getestet, mein bisheriger Code klappt damit nicht. Muss ich mir wohl Gedanken machen, wie ich es anders löse. :-(
 

Anhänge

  • datei_B.JPG
    datei_B.JPG
    17,3 KB · Aufrufe: 24
  • Datei_A.JPG
    Datei_A.JPG
    12,6 KB · Aufrufe: 23
Zuletzt bearbeitet:

OnDemand

Top Contributor
Soo liebe Mitlesende, schlafen hilft :p

Habe nun mit frischem Geist mein Problem gelöst.

Habe 2 HashMaps erzeugt

Java:
Hashtable<String, String> mapID = new Hashtable<>(); // Inhalt Modellnummer, ID
Hashtable<String, Ware> mapWare = new Hashtable<>();// Inhalt: Modelnummer, Ware-Objekte

Dann konnte ich ganz einfach die Spalte "Modellnummer" meine neue Datei (mit den doppelten Artikelnummern) als Key nehmen und in der Hashmap die ID rausziehen und gleichzeitig mit der Modellnummer die Objekte aus der anderen Map holen.

Java:
mapID.get(modellNummerAusCsvDatei); //Gibt die ID aus
mapWare.get(modellNummerAusCsvDatei).getXXX(); //Gibt den Wert, je nach Getter aus der Bean ;)

I like HasMaps :)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Meine Frage lautet wie ich 2 CSV Dateien miteinander in Java verbinde und Spalten die zueinander gehören durch den gleichen Key zusammen ausgebe? Allgemeine Java-Themen 5
OnDemand CSV lesen flexible Spalten Allgemeine Java-Themen 3
R Spalten/Zeilen verschieben in zweidimensionalen Arrays? Allgemeine Java-Themen 3
J json Array würfel Spalten durcheinander Allgemeine Java-Themen 9
B Spalten eines 2d-Arrays Allgemeine Java-Themen 2
ms_cikar Java Excel bearbeiten spalten werden überschrieben. Allgemeine Java-Themen 4
S JTable und Spalten löschen Frage Allgemeine Java-Themen 5
M Formattierung von Excel Spalten mit jxl Allgemeine Java-Themen 4
S ArrayList nach mehreren Spalten sortieren? Allgemeine Java-Themen 13
B Entfernen von Zeilen/Spalten aus einer Matrix Allgemeine Java-Themen 8
J Matrix mit unterschiedlicher Anzahl von Spalten pro Zeile? Allgemeine Java-Themen 4
Ü Arrays vergleichen Allgemeine Java-Themen 59
Ü Methoden Arrays vergleichen - Methode Allgemeine Java-Themen 1
D Zwei Listen vergleichen Allgemeine Java-Themen 7
F 2 JsonArray vergleichen, geht es auch einfacher ? Allgemeine Java-Themen 3
N String vergleichen. Allgemeine Java-Themen 27
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
Curtis_MC Pointer mit ArrayList vergleichen Allgemeine Java-Themen 6
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
D Erste Schritte Arrays vergleichen und die zahlen die nur einmal vorkommen ausgeben Allgemeine Java-Themen 5
E Elemente innerhalb einer ArrayList vergleichen Allgemeine Java-Themen 33
R Optimierung beim Vergleichen von 2 Bildern Allgemeine Java-Themen 23
CptK Input/Output Buttonwerte vergleichen Allgemeine Java-Themen 5
J Mockito - Objekte miteinander vergleichen (equals) Allgemeine Java-Themen 6
Meeresgott Best Practice Strings auf Inhalte vergleichen Allgemeine Java-Themen 1
N DNA Strings vergleichen Allgemeine Java-Themen 1
C Input/Output Textdateien vergleichen Allgemeine Java-Themen 3
M Dateien nach kopieren vergleichen Allgemeine Java-Themen 9
KeVoZ_ JSoup - Website Inhalt/Element mit String vergleichen Allgemeine Java-Themen 2
K Eingabe mit Char vergleichen klappt nicht! Allgemeine Java-Themen 2
AssELAss Best Practice Checksumme über jede Spalte zweier Tabellen und vergleichen Allgemeine Java-Themen 3
AssELAss Zwei Arrays / ArrayLists inhaltlich vergleichen Allgemeine Java-Themen 2
W Variablen Dates vergleichen Allgemeine Java-Themen 7
A Collections Inhalt einer Liste mit Inhalt anderer Liste vergleichen ? Allgemeine Java-Themen 7
J Farben mit comparing vergleichen Allgemeine Java-Themen 3
Dechasa Java 8 - Datum vergleichen Allgemeine Java-Themen 5
S Zwei String vergleichen, Fehler markieren Allgemeine Java-Themen 3
Dechasa Vergleichen von zwei Arrays Allgemeine Java-Themen 4
H Strings vergleichen Allgemeine Java-Themen 9
Y inhalte aus 2 unterschiedlichen Arrays miteinander vergleichen Allgemeine Java-Themen 12
D Pattern mit Pattern vergleichen Allgemeine Java-Themen 3
2 Joda Time - Localtime mit anderer Zeit vergleichen? Allgemeine Java-Themen 1
A Kann String nicht vergleichen (Android) Allgemeine Java-Themen 4
F Zwei LinkedHashMaps iterieren und vergleichen Allgemeine Java-Themen 2
D Variablen java.io.File zum vergleichen abspeichern Allgemeine Java-Themen 1
7 6 int variablen vergleichen Allgemeine Java-Themen 34
E Lesen von mehrere Csv-Datei und ihre Inhalte vergleichen Allgemeine Java-Themen 3
R Int werte vergleichen und Anzahl Paare ausgeben Allgemeine Java-Themen 4
C Rechenzeit verschiedener Algorithmen vergleichen Allgemeine Java-Themen 4
OnDemand Dateien einlesen und vergleichen Allgemeine Java-Themen 1
L Zwei Files miteinander vergleichen und Grafisch darstellen Allgemeine Java-Themen 1
S String vergleichen Allgemeine Java-Themen 1
T Zwei Wortendungen vergleichen ohne .equals Allgemeine Java-Themen 10
N Variablen Positionen vergleichen ??? Allgemeine Java-Themen 2
A Bilder vergleichen auf gleichheit oder ähnlichkeit Allgemeine Java-Themen 8
J XML Dateien vergleichen Allgemeine Java-Themen 9
X Collections Hashmaps vergleichen Allgemeine Java-Themen 23
BRoll Image RGB Werte auslesen und vergleichen Allgemeine Java-Themen 8
S Zwei Comparable (compareTo) vergleichen Allgemeine Java-Themen 6
A PDF Content vergleichen Allgemeine Java-Themen 3
M Datentypen Referenzen oder seperate IDs vergleichen? Allgemeine Java-Themen 6
D Strings vergleichen; Komma ignorieren Allgemeine Java-Themen 3
J String nur erste Zeichen vergleichen Allgemeine Java-Themen 6
S Reports vergleichen Allgemeine Java-Themen 8
V ArrayList vergleichen mit .equals? Allgemeine Java-Themen 13
T Wörter Vergleichen Allgemeine Java-Themen 3
T Uhrzeiten vergleichen Allgemeine Java-Themen 4
P JAVA Bilder/Videos in Form von Files vergleichen Allgemeine Java-Themen 7
S Strings vergleichen Allgemeine Java-Themen 11
9 Dateinamen erfassen und vergleichen Allgemeine Java-Themen 6
S String Zeichen für Zeichen vergleichen Allgemeine Java-Themen 4
D String mit Wörterbuch vergleichen Allgemeine Java-Themen 12
I Input/Output Zeichenkette eingeben und vergleichen Allgemeine Java-Themen 2
Landei Hilfsklasse zum Vergleichen Allgemeine Java-Themen 5
S Datum vergleichen - ohne Hilfsmittel Allgemeine Java-Themen 8
1 zwei Strings vergleichen Allgemeine Java-Themen 16
F Vergleichen von Datumswerten Allgemeine Java-Themen 3
S Ergebnis von Cursor c1 mit Cursor c2 vergleichen Allgemeine Java-Themen 3
G Zwei bytes vergleichen Allgemeine Java-Themen 2
S Fixe Zahlen vergleichen Allgemeine Java-Themen 4
M Zeitangaben vergleichen Allgemeine Java-Themen 2
MonsterBit 2 Werte aus 2 Array vergleichen Allgemeine Java-Themen 10
1 String mit contains vergleichen (ignore case) Allgemeine Java-Themen 2
Developer_X Problem mit String vergleichen Allgemeine Java-Themen 3
Z zwei Daten vergleichen Allgemeine Java-Themen 4
nrg Leere Objektreferenz mit != null vergleichen Allgemeine Java-Themen 4
ARadauer PDF Vergleichen Allgemeine Java-Themen 16
S Alle Elemente von zwei Listen vergleichen Allgemeine Java-Themen 10
O Probleme beim vergleichen von 2 Datumsangaben Allgemeine Java-Themen 2
N 2 files auf gleichheit vergleichen Allgemeine Java-Themen 5
V Datum vergleichen Allgemeine Java-Themen 7
T Shapes vergleichen? Zeichen erkennen? Allgemeine Java-Themen 7
S Datei auf Server mit lokaler Datei vergleichen Allgemeine Java-Themen 4
M Warum Strings mit equals vergleichen... Allgemeine Java-Themen 6
G Datum vergleichen Allgemeine Java-Themen 5
A zwei listen vergleichen und unterschiede anzeigen Allgemeine Java-Themen 3
J Inhalt von HashMap vergleichen Allgemeine Java-Themen 3
S Anfänger: 2 Objekte vergleichen? Allgemeine Java-Themen 8
Y Mal wieder vergleichen von Strings.[Leider noch ein Problem] Allgemeine Java-Themen 18

Ähnliche Java Themen

Neue Themen


Oben