So erweitern Sie HashMap, um String, String-Typen zuzulassen

8

Ich muss eine benutzerdefinierte Klasse erstellen, die java.util.LinkedHashMap erweitert und String als Schlüssel und String als Wert annimmt und über einen Konstruktor ohne Argumente verfügt, der diese Map mit Anfangswerten vorbelegt.

Ich stecke bei der ersten Aufgabe fest - wie kann ich die LinkedHashMap so erweitern, dass sie statt generischer Argumente nur akzeptiert?

Ich habe das versucht, (funktioniert nicht)

%Vor%     
Wil 05.11.2012, 15:45
quelle

6 Antworten

8

Alles was Sie brauchen ist:

%Vor%

Entfernen Sie <String, String> von Ihrem Klassennamen und es wird funktionieren. Sie erstellen eine Klasse, die LinkedHashMap<String, String> erweitert, sodass Ihre Klasse bereits eine Map ist, die String als Schlüssel und String als Wert benötigt. Wenn Sie Ihre eigene generische Klasse erstellen wollen, müssen Sie folgendes tun:

Erstellen Sie eine Klasse für Beispiel:

%Vor%

und erweitern Sie dann diese Klasse:

%Vor%

In diesem Fall müssen Sie den Schlüssel und den Wert für Ihre Klasse angeben, damit SomeMyMenu class den Schlüssel und den Wert als String verwendet. Sie können mehr über Generika hier lesen.

Aber effizienter ist es, eine letzte Klasse zu erstellen und die Karte so zu deklarieren:

%Vor%

Und um die Werte von Ihrer Karte zu erhalten, benutzen Sie:

%Vor%     
Paulius Matulionis 05.11.2012, 15:51
quelle
2

Wenn Ihr Kampf, wie Sie beschreiben, nur mit der Deklaration ist, dann würde ich etwas versuchen wie:

%Vor%     
Edwin Dalorzo 05.11.2012 15:46
quelle
2

Sie könnten etwas wie unten tun:

%Vor%     
Yogendra Singh 05.11.2012 15:48
quelle
1
___ answer13235517 ___

Wenn Ihr Kampf, wie Sie beschreiben, nur mit der Deklaration ist, dann würde ich etwas versuchen wie:

%Vor%     
___ antwort13235536 ___

Versuchen:

%Vor%     
___ answer13235575 ___

Solange Sie JDK 1.5 oder höher verwenden, können Sie Generics verwenden und eine LinkedHashMap erstellen, die String-Schlüssel und String-Werte speichert und wie folgt initialisiert:

%Vor%     
___ answer13235638 ___

Komposition ist in Ihrem Fall eine bessere Lösung als die Vererbung:

%Vor%     
___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ tag123hashmap ___ Eine Datenstruktur, die eine Hash-Funktion verwendet, um identifizierende Werte, die als Schlüssel bezeichnet werden, ihren zugehörigen Werten zuzuordnen ___ qstntxt ___

Ich muss eine benutzerdefinierte Klasse erstellen, die java.util.LinkedHashMap erweitert und String als Schlüssel und String als Wert annimmt und über einen Konstruktor ohne Argumente verfügt, der diese Map mit Anfangswerten vorbelegt.

Ich stecke bei der ersten Aufgabe fest - wie kann ich die LinkedHashMap so erweitern, dass sie statt generischer Argumente nur akzeptiert?

Ich habe das versucht, (funktioniert nicht)

%Vor%     
___ answer13235546 ___

Sie könnten etwas wie unten tun:

%Vor%     
___ answer13235595 ___

Alles was Sie brauchen ist:

%Vor%

Entfernen Sie %code% von Ihrem Klassennamen und es wird funktionieren. Sie erstellen eine Klasse, die %code% erweitert, sodass Ihre Klasse bereits eine %code% ist, die %code% als Schlüssel und %code% als Wert benötigt. Wenn Sie Ihre eigene generische Klasse erstellen wollen, müssen Sie folgendes tun:

Erstellen Sie eine Klasse für Beispiel:

%Vor%

und erweitern Sie dann diese Klasse:

%Vor%

In diesem Fall müssen Sie den Schlüssel und den Wert für Ihre Klasse angeben, damit %code% class den Schlüssel und den Wert als %code% verwendet. Sie können mehr über Generika hier lesen.

Aber effizienter ist es, eine letzte Klasse zu erstellen und die Karte so zu deklarieren:

%Vor%

Und um die Werte von Ihrer Karte zu erhalten, benutzen Sie:

%Vor%     
___ qstnhdr ___ So erweitern Sie HashMap, um String, String-Typen zuzulassen ___
Jean Logeart 05.11.2012 15:47
quelle
1

Solange Sie JDK 1.5 oder höher verwenden, können Sie Generics verwenden und eine LinkedHashMap erstellen, die String-Schlüssel und String-Werte speichert und wie folgt initialisiert:

%Vor%     
Vikdor 05.11.2012 15:49
quelle
1

Komposition ist in Ihrem Fall eine bessere Lösung als die Vererbung:

%Vor%     
Amir Pashazadeh 05.11.2012 15:53
quelle

Tags und Links