Liste mit int und String (assoziativ glaub ich)

Status
Nicht offen für weitere Antworten.

Incubant

Mitglied
Hallo,

ich kann es einfach nicht glauben, ich füllte mich mal Java gewachsen, aber es wirft mir immer bei den kleinsten Aufgaben riesige Brocken vor die Füße. Meine einzige Erkenntnis ist, dass ich halt doch noch der blutigste Anfänger bin.

Ich quäl auch ordentlich Bücher, Foren und google, aber irgendwie wollen sich meine Probleme nicht lösen.

:?: Folgendes, ich will ganz ganz einfach eine Liste haben, die einen int und einen dazu gehörigen String speichert, aber nicht geregelt abläuft.

Also sprich 1. Eintrag 103 --> Artikelname
2. Eintrag 205 --> Artikelnummer
u.s.w.

ursprünglich hatte ich es mit einer HashMap geschrieben, aber schieß ich da nicht mit Kannonen auf Spatzen? Den ich will ja nur int --> String.

Die meisten Listen die ich durchlese arbeiten mit Objekts, aber soweit ich weiß ist int primitiv und kein Objekt.

Die Liste sollte nur 3 Funktionen können

Code:
    parameter.add(103, "Artikelname");
    paramter.getValue("Artikelname");    //gibt int 103 zurück    
    parameter.getKey(103);                   // gibt String "Artikelname" zurück


wie verwirkliche ich dieses einfach Gebilde.

Vielen Dank.

Ich glaub ohne Euch und Java-Forum.org, könnte ich meine DA in die Ecke werfen.
 
S

SlaterB

Gast
die HashMap ist genau das was du brauchst,
sie kann von einem Objekt (z.B. 103) auf ein anderes wie den String mappen,

das ist keine Kanone und auch kein Spatz, sondern genau der richtige Einsatz ;)

allerdings funktioniert eine Map immer nur in eine Richtung,
wenn du auch vom String auf den Key schließen möchtest,
brauchst du eine zweite Map,
bei der der String der Key ist und der Key der Value,

pass aber auf, dass jeder String eindeutig ist,
ansonsten vielleicht von String auf eine Liste von Keys mappen
 

Incubant

Mitglied
danke Slater

aber was mich an der HashMap nervt, ist das Objekt, weil ich dann mit Integer anstatt int's arbeiten müsste.

Also ich für meinen Fall arbeite in meinem ganzen Programm eigentlich nur mit int, übergeb auch int's u.s.w.

Und jetzt muss ich so eine Integer typ-wandlung machen! Ist das notwendig.

:?: Wie ist das eigentlich bei Java, wär ich besser dran wenn ich nur mit Integer arbeiten würde oder nur mit int,
Oder am besten mal so mal so. :?: :?

Ich versteh unter int und Integer genau das selbe nur mit einem anderen Namen und das eine ist eben ein Objekt und das andere nicht.

Und bei der HashMap ist das nächste Problem, dass ich nicht vorwärts und rückwärts arbeiten kann.

Das kann ich nicht verstehen, gibt es solche arten und zugriffe auf listen nicht öfter, dass sowas nicht implementiert ist? Oder ist das einfach normal, dass man zwei listen macht. Ich hab halt immer die übersichtlichkeit meines Programms im Hinterkopf, und doppelt gemoppelt find ich nicht arg übersichtlich.

Gruß Basti
 
S

SlaterB

Gast
int ein besonderer Datentyp,
eine HashMap die nur mit ints arbeitet wäre sogar einen Tick effizienter,
denn dann braucht man keine oder eine deutlich einfachere HashCode-Operation,

allerdings würde diese Map dann nicht mit allen andere Objekten der Java-Welt funktionieren,
also gibt es die Objekt-Map, die überall geht und auch mit ints mit unerheblichen Zusatzaufwand,

für spezielle int-Nutzung lohnt es sich, eine eigene Map zu schreiben,
bzw. du brauchst sicherlich gar nicht mal eine Map,
wenn du nur wenige Objekte hast und es dir mehr um die Organisation als um die Performanz geht,
dann kannst du auch eine Liste oder bei Array nehmen, welches bei jeder Suche durchlaufen wird

--------

eine HashMap kann von Natur aus nur in eine Richtung,
in jedem Programm und jeder Programmiersprache der Welt,

natürlich kann man sich eine höhere eigene Klasse schreiben,
die beide Richtungen beherrscht und intern zwei Maps (oder in deinem Fall auch einfachere Listen/ Arrays) verwendet,

ich sehe nichts, was dagegen spricht, sowas allgemein in der Java-API anzubieten,
da stimme ich dir zu,
habe ich bisher aber noch nirgendwo gesehen
 

Incubant

Mitglied
Es würde hier um wenige Elemente gehen, sprich ca. 100, mit einer Liste hab ichs probiert, aber irgendwie kam ich auch nicht zum gewünschten Erfolg. In meinem Fall weiß ich auch nicht 100% welche Liste da angebracht wäre.

Und um ein Arrays mach ich eigentlich eher einen Bogen und speziell auch in diesem Fall.

Ich denk ich werd auf die zwei Hashmaps zugreifen und die Integer eingabe. Ist zwar nicht soo schick aber erfüllt seinen zweck.

Als ich mit Java angefangen hab, dacht ich, das erschlägt alles auf die leichteste Art und weiße, aber irgendwie kommts mir im Moment anderst vor.
 
S

SlaterB

Gast
die Liste müsste natürlich beide Elemente enthalten,
entweder in einer eigenen Hilfsklasse, was immer zu empfehlen ist,
oder wiederum in einer Liste/ Array,
also eine Liste von 100 Listen mit je zwei Elementen,

bei Key-Eingabe dann die Liste durchlaufen, jeweils das Key-Element anschauen und bei Treffen das andere Element zurückgeben,
HashMap kommt dem recht nahe, und ist in der Suche natürlich schneller
 

Incubant

Mitglied
Ich hab jetzt ne HashMap verwendet und eine rückwärtssuche anhand von iteratoren gebaut. Ein bisschen wirr, aber die Rückwärtssuche sollte sowiese nicht so oft benutzt werden. Und das wichtigste, es funktioniert :D

Code:
  HashMap parameters = new HashMap();

  parameters.put("Artikelname", new Integer(102));
  //.... viele weitere parameter

  public Integer getID(String keyName) {
    return (Integer)parameters.get(keyName);
  }
  
  public String getName(int keyNumber) {
    Iterator it = parameters.entrySet().iterator();
    while (it.hasNext()) {
      Map.Entry entry = (Map.Entry) it.next();
      if (entry.getValue().hashCode() == keyNumber){
        return entry.getKey().toString();
      }
    }
    return "undefined";
  }

Vielen Dank SalterB für deine Unterstützung und Erläuterung.
 

Leroy42

Top Contributor
Wenn du Java ab Version 1.5 nutzst brauchst du dich übrigens
um die Umwandlung int <==> Integer nicht zu kümmern

Code:
 HashMap parameters = new HashMap(); 

  parameters.put("Artikelname", 102); 
  //.... viele weitere parameter 

  public int getID(String keyName) { 
    return parameters.get(keyName); 
  } 
  
  public String getName(int keyNumber) { 
    Iterator it = parameters.entrySet().iterator(); 
    while (it.hasNext()) { 
      Map.Entry entry = (Map.Entry) it.next(); 
      if (entry.getValue() == keyNumber){ 
        return entry.getKey().toString(); 
      } 
    } 
    return "undefined"; 
  }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
A Korrigierte <String> Liste zurückgeben Java Basics - Anfänger-Themen 22
R Methoden Entferne alle identische Knoten (Typ String) aus verkettete Liste Java Basics - Anfänger-Themen 8
C Liste o.ä. erstellen mit <Integer, <Integer, String> Java Basics - Anfänger-Themen 7
A Mehrdimensionalles Array in String ausgeben in Liste Java Basics - Anfänger-Themen 5
M Array - String - Liste Java Basics - Anfänger-Themen 14
D Datentyp: Liste von String->Double dingern Java Basics - Anfänger-Themen 4
M String in Liste von Objekten suchen und verändern? Java Basics - Anfänger-Themen 8
ven000m Liste als String - Elemente zu Int machen Java Basics - Anfänger-Themen 4
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
R Liste und Arrays Java Basics - Anfänger-Themen 12
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
M Verkettete Liste Java Basics - Anfänger-Themen 1
M Vergleichen, ob eine Liste länger als andere ist Java Basics - Anfänger-Themen 6
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
E Elemente aus Liste entfernen und hinzufügen Java Basics - Anfänger-Themen 3
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
B Objekt aus generalisierter Liste entfernen Java Basics - Anfänger-Themen 11
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
E Suchfunktion in einer Liste Java Basics - Anfänger-Themen 39
T ungeordnete Werte-Paare in einer Liste Java Basics - Anfänger-Themen 7
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
berserkerdq2 Warum soll ich shuffle nutzen, um bei Rückgabewert Collection eine Liste zurückzugeben? Java Basics - Anfänger-Themen 3
sserio Wieso werden nicht alle Primzahlen bis 1000 in meine Liste gepackt ? Java Basics - Anfänger-Themen 8
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
f3mys Objektwerte in Liste speichern und wieder abrufen Java Basics - Anfänger-Themen 23
H Java verkettete Liste, Wert eines Index zurückgeben Java Basics - Anfänger-Themen 1
K Warum ist die binäre Suche bei der verketteten Liste nicht so effektiv? Java Basics - Anfänger-Themen 3
I 2D-Array Position der Liste ausgeben. Java Basics - Anfänger-Themen 2
I Liste von Infos von einer eigenen Annotation in Liste speichern Java Basics - Anfänger-Themen 0
P Doppelte werte in einer Liste zählen Java Basics - Anfänger-Themen 11
Igig1 Autoparkplatz verkettete Liste erstes und letztes Auto Java Basics - Anfänger-Themen 13
thor_norsk Verkette Liste Java Basics - Anfänger-Themen 27
R Rückgabe: verkettete Liste Java Basics - Anfänger-Themen 2
R einfach verkettete Liste Java Basics - Anfänger-Themen 1
R einfach verkettete Liste Java Basics - Anfänger-Themen 12
O Doppelt verkette Liste Element löschen Java Basics - Anfänger-Themen 15
B GUI extension mit einer Liste verbinden Java Basics - Anfänger-Themen 1
B Verkettete Liste durchgehen und einzelne Elemente in neue Liste tun Java Basics - Anfänger-Themen 9
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
M Java Liste streamen Java Basics - Anfänger-Themen 10
AmsananKING Aussortierung einer Liste Java Basics - Anfänger-Themen 8
A Objekte mit Parametern in eine Liste packen Java Basics - Anfänger-Themen 19
S Kann nicht auf die Liste zugreifen mit der Methode!? Java Basics - Anfänger-Themen 3
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
alice98 Erste Schritte Liste erstellen ohne vorgefertigte Klassen Java Basics - Anfänger-Themen 1
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
I Liste gruppieren nach Monat? Java Basics - Anfänger-Themen 5
districon Element in Liste einfügen Java Basics - Anfänger-Themen 1
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
Y Einfügen in eine doppelt verkettete Liste Java Basics - Anfänger-Themen 8
Y Knoten an einem gegebenen Index aus einer Liste entfernen. Java Basics - Anfänger-Themen 6
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
Gaudimagspam Linked Liste Java Basics - Anfänger-Themen 4
Z Liste umkehren Java Basics - Anfänger-Themen 1
S Eine Liste kopieren Java Basics - Anfänger-Themen 13
java3690 Java- liste füllen ud die werte addieren Java Basics - Anfänger-Themen 13
java3690 Liste mit zufälligen zahlen füllen Java Basics - Anfänger-Themen 27
java3690 eine liste sortieren Java Basics - Anfänger-Themen 12
J Element aus Liste nehmen Java Basics - Anfänger-Themen 3
B JUnit 4: Wie man die eigene Liste testen kann [TDD] Java Basics - Anfänger-Themen 46
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
A Doppelt verkettete Liste rückwärts ausgeben Java Basics - Anfänger-Themen 17
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
H Liste speichern. Was lässt sich verbessern? Java Basics - Anfänger-Themen 7
P Performance Array und Liste Java Basics - Anfänger-Themen 13
M QuickSort und Liste Java Basics - Anfänger-Themen 6
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
B Summe von Property innerhalb einer Liste via Lambda Java Basics - Anfänger-Themen 1
V Collections int Werte in einer Liste sortieren Java Basics - Anfänger-Themen 23
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
V_Fynn03 Beliebiges Element in einer Liste löschen (Java)(Lineare Datenstrukturen) Java Basics - Anfänger-Themen 9
L Baum aus Integer Liste erstellen Java Basics - Anfänger-Themen 0
CptK Koordinate in Liste suchen Java Basics - Anfänger-Themen 20
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
D Doppelt Verkettete Zirkular-Liste Java Basics - Anfänger-Themen 1
L Liste in anderem Thread laden Java Basics - Anfänger-Themen 1
M Array liste Verdrehen Java Basics - Anfänger-Themen 8
A Verkettete Liste Java Basics - Anfänger-Themen 2
J Strings untereinander in einer Liste vergleichen Java Basics - Anfänger-Themen 18
B Liste von Tagen generieren ab einem bestimmten Datum und Endedatum Java Basics - Anfänger-Themen 4
S IndexOutOfBoundsException beim hinzufügen eines Elements zu einer Liste Java Basics - Anfänger-Themen 11
B Liste sortieren? Java Basics - Anfänger-Themen 4
O Anonyme Klasse einer Liste erstellen Java Basics - Anfänger-Themen 7
B SWAP List; Liste neu anordnen Java Basics - Anfänger-Themen 4
B CSS Klassen in eine Liste schreiben Java Basics - Anfänger-Themen 4
B Doppelt verkettete Liste implementieren Java Basics - Anfänger-Themen 8
L verkettete Liste Java Basics - Anfänger-Themen 15
scratchy1 doppelt verkettete Liste testen Java Basics - Anfänger-Themen 8
O ADT Liste z. B. Java Basics - Anfänger-Themen 15
B sortierte Liste Java Basics - Anfänger-Themen 4
O Knoten und Liste verarbeitung Java Basics - Anfänger-Themen 20
C Methoden Über eine einfach verkettete Liste Java Basics - Anfänger-Themen 8

Ähnliche Java Themen


Oben