Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Maps werden nicht umsonst auch "Dictionaries" (Wörterbücher) genannt. Die erste Klasse in den spitzen Klammern sagt, mit welcher Art von Schlüssels du in der Map suchen kannst (in deinem obigen Beispiel String, kann aber alles mögliche sein). Die zweite Klasse sagt, welche Werte du zurückbekommst (in deinem Beispiel Operation). Typisches Beispiel wäre Kundennummer und Kunde:
Java:
class KundenNummer{ ...}
class Kunde{ ...}
Map<KundenNummer, Kunde> map = new HashMap<KundenNummer, Kunde>
Kunde meier = new Kunde(....)
Kunde mueller = new Kunde(....)
KundenNummer meierNummer = meier.getKundenNummer();
KundenNummer muellerNummer = mueller.getKundenNummer();
map.put(meierNummer, meier); //danach ist Meier unter seiner Kundennummer gespeichert
map.containsKey(meierNummer); //true
map.containsKey(muellerNummer); //false Mueller ist nicht in der Map
Kunde k = map.get(meierNummer); //k ist meier
Kunde m = map.get(muellerNummer); //m ist null, Mueller ist nicht in der Map
map.put(meierNummer, mueller); //jetzt steht Mueller unter meierNummer, der Meier-Eintrag ist weg und alle sind verwirrt
Durch deine Worte habe ich nun einiges mehr verstanden. Das hoffe ich zumindest. Collections sind echt was für profis ^^.
Ok, ich möchte es mal versuchen anhand des Parsers, von Beno zu erklären.
Von dem, vielen dank an dieser Stelle, habe ich gelernt wie ein Parser zum Teil funktioniert.
Gut.
Java:
private Map<String, Operation> operations = new HashMap<String, Operation>();
Unsere Map bekommt hier nun als String alle unsere Zeichen, die wir in ein Taschenrechnertextfeld eingeben. Sie dienen als Schlüssel um gewisse Werte auszulösen. In diesen Falle unsere Operationen.
Java:
addOperation( "+", new Operation(){
public int getPriority() {
return 1;
}
public double calculate( double a, double b ) {
return a+b;
}
});
Mit der Methode put fügen wir der Hashmap nun das Schlüsselpaar und das Wertepaar zu. Falls das Textfeld ein String,equals("+") bekommt, dann werden folgende Werte im Programm oder folgende Methoden ausgelöst.
Das gleiche gilt für weiter arethmetische Mittel.
Ist das soweit richtig verstanden?Alleine würde man doch auf sowas nie kommen ---....:autsch:
Ich hab ein progi welches ich mit Map bereichern will nur blick ich da leider net durch.
Ich hab 3 klassen: Kunde, Auftrag, Artikel
Zu einem Kunden gibt es mindestens einen Auftrag, es können aber auch
viele sein. Ein Auftrag umfasst mindestens einen Artikel, es können aber auch viele sein.
Ein Artikel ist in einer bestimmten Menge in einem Auftrag enthalten.
Das möchte ich lösen in dem ich jedem Kunden über die Map einen auftrag zuweise und das gleiche bei den artikeln.
Im auftrag gibt es halt die rechnungsnummer über die man den auftrag einem kunden zuweisen kann.
Hab zu den 3 klassen jeweils die attribute, konstruktor und getter/setter methoden erstellt.
kann mir jemand nen beispiel geben wie genau ich das anzuwenden habe.