Collections mit >2 type Parametern?

membersound

Bekanntes Mitglied
Hallo,

ich suche etwas in der Art wie HashMap<String, Integer, Boolean>, also mit mehr als 2 Parametern.
Hab jetzt die Collection API gewälzt, aber offenbar bietet die so etwas nicht an.

Was gibt es für Alternativen?

Danke
 

Marco13

Top Contributor
Welche Rollen sollen die Drei Typen spielen? (Also, was ist Key und was ist Value?). Evtl. tut's schon eine
Map<String, Pair<Integer, Boolean>>
für eine geeignete Klasse "Pair<S,T>"...
 

membersound

Bekanntes Mitglied
Map<JComponent, Action, String, int> für eine Methode: registerHotkeys<JComponent, Action, String, int>,
zum Erzeugen von .registerKeyboardAction mit den übergebenden Parametern.

Damit ich nicht immer komplette Funktionsaufrufe schreiben muss, hätte ich gerne eine Collection, durch die ich einfach nur durch iteriern muss.
 
G

gh

Gast
und was genau soll bei einer Map mit 4 (!) generischen Parametern jetzt der Key- und der Value-Typ sein?

Ich halte das vom Ansatz her schon für völlig unsinnig. Eine Map bildet einen Key auf einen Wert ab. Nicht mehr und nicht weniger. Wenn du irgendwelche komplexen Werte mit verschiedenen Komponenten hast, kann kapsele die in einer eigenen Klasse und benutze diese Klasse als Value-Typ der Map.
 
S

Spacerat

Gast
Also mit int funktioniert da schon mal gar nichts, höchstens mit Integer. Wie meine Vorschreiber schon andeuteten, eine Map mapped Keys auf Values, womit sie halt auf 2 Parametertypen begrenzt ist (Map<K, V> steht für Map<Key, Value> ;)). Um für die Komponenten eine Map für Namen, Keybindings (ich nehme mal an, dafür ist das int) und Actions zu bekommen, musst du dir für die letzten 3 Typen halt 'ne eigene Klasse stricken und diese Klasse als Valuetyp bei der Map angeben (siehe Beitrag von Marco13).
Java:
class Binding
{
  public final String name;
  public final Action action;
  public final int key;

  public Binding(String name, Action action, int key)
  {
    this.name = name;
    this.action = action;
    this.key = key;
  }
}
Innerhalb dieser Klasse sollte man einen Mechanismus implementieren, welcher diverse Bindings einmalig macht, damit sie halt nur einmal verwendet werden können. Da es sich bei der Klasse Action um ein Interface handelt, empfiehlt es sich sogar, dass Binding dieses implementiert, statt nur, wie in meinem Beispiel, darauf zu delegieren. Die Zuweisung in die Map sieht dann ungefähr so aus:
Java:
Map<JComponent, Binding> keyBindings = new HashMap<JComponent, Binding>();
keyBindings<myJComponent, new Binding("Button1", myAction1, myKey);
 
B

bygones

Gast
Map<JComponent, Action, String, int> für eine Methode: registerHotkeys<JComponent, Action, String, int>,
zum Erzeugen von .registerKeyboardAction mit den übergebenden Parametern.
wie schon gesagt, lerne Klassen kennen und dann geht es. Achte darauf dass falls du Klassen als key nutzt, diese equals und hashcode richtig ueberschreiben.

Damit ich nicht immer komplette Funktionsaufrufe schreiben muss, hätte ich gerne eine Collection, durch die ich einfach nur durch iteriern muss.
eine Map ist KEINE Collection...
 
S

Spacerat

Gast
eine Map ist KEINE Collection...
Das kann man von 2 Seiten sehen.
1. Du hast recht. Map implementiert das Interface Collection nicht.
2. Ob Insel, Guido Krüger oder sonst wo - wann immer von Collections die Rede ist, wird dort auch die Map erwähnt. Ausserdem gibt es bisher keine Klasse Maps, sondern lediglich eine Klasse Collections, welche auch Methoden für Maps bereitstellt. Übersetzt man Collection ins deutsche, wird daraus eine Sammlung. Eine Map ist auch eine Sammlung, nur hat diese halt - nennen wir es - spezielle "Zeiger" auf ihre Inhalte.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Sortierung in collections testen Java Basics - Anfänger-Themen 11
X Collections.sort als Lambda Java Basics - Anfänger-Themen 14
berserkerdq2 Geht collections.sort bei allen? Linkedhashset, ArrayList, HashSet etc. Java Basics - Anfänger-Themen 4
O Collections.sort und List.sort mit Lambda Verwirrung Java Basics - Anfänger-Themen 5
B Collections.sort mit zwei Bedingungen? Java Basics - Anfänger-Themen 4
I Collections.shuffle funktioniert nicht Java Basics - Anfänger-Themen 1
M Collections Frage Java Basics - Anfänger-Themen 1
D Methoden Collections.shuffle mit bestimmtem Startwert? Java Basics - Anfänger-Themen 8
T Java Collections Java Basics - Anfänger-Themen 58
X Collections Collections Maps Frage Java Basics - Anfänger-Themen 4
C Collections: private Map Java Basics - Anfänger-Themen 4
V Collections Java Basics - Anfänger-Themen 3
A Collections Java Basics - Anfänger-Themen 2
P collections.sort Java Basics - Anfänger-Themen 2
R Iterationsreihenfolge über Collections Java Basics - Anfänger-Themen 4
S Klassen Collections Java Basics - Anfänger-Themen 10
J Polymorphie Iteratoren statt Collections Java Basics - Anfänger-Themen 13
H Etwas wie sort() / sorted() in JAVA-Collections? Java Basics - Anfänger-Themen 5
F Collections ArrayList oder Hashmap mittel Collections.sychronised Java Basics - Anfänger-Themen 6
S Bestimmte Objekte aus Collections anwählen/herausbekommen Java Basics - Anfänger-Themen 8
S Frage zu Collections.frequency() Java Basics - Anfänger-Themen 3
T Collections Übersicht Collections Java Basics - Anfänger-Themen 4
X Collections Inhalt von zwei Collections prüfen Java Basics - Anfänger-Themen 4
A Generische Collections und Vererbung Java Basics - Anfänger-Themen 2
K Telefonbuch Implementation mit Java Collections Java Basics - Anfänger-Themen 4
G Collections.binarySearch(LinkedList): cannot find method Java Basics - Anfänger-Themen 6
S Collections Sortieren von 3 Collections nach "einer Sortierung" Java Basics - Anfänger-Themen 3
T Kleine Frage zu Collections Java Basics - Anfänger-Themen 3
A Collections und ArrayList Java Basics - Anfänger-Themen 2
S Klasse Mit Collections Java Basics - Anfänger-Themen 32
X DB4O Collections and Arrays, brauche dringend Hilfe! Java Basics - Anfänger-Themen 3
D Datentypen Generische Collections und Warnings Java Basics - Anfänger-Themen 8
K Aufgabe Collections Java Basics - Anfänger-Themen 2
D Collections - subList erstellen Java Basics - Anfänger-Themen 4
S Frage zu Enumerator der trad.Collections Java Basics - Anfänger-Themen 8
M Instanzen, Referenzen und Collections Java Basics - Anfänger-Themen 3
Dit_ Collections.sort(..); | Anwendung Java Basics - Anfänger-Themen 4
T array erweitern/flexible ohne collections usw. Java Basics - Anfänger-Themen 3
S Collections Java Basics - Anfänger-Themen 13
M Collections{Liste aus Objekten erzeugen] Java Basics - Anfänger-Themen 19
S generics und Collections#unmodifiableList Java Basics - Anfänger-Themen 2
G Wann Arrays, wann Collections? Java Basics - Anfänger-Themen 36
N Collections Sort ArrayList<> Java Basics - Anfänger-Themen 7
N Suche Infos zu Maps - Collections Java Basics - Anfänger-Themen 4
G erstes Arbeiten mit Collections Java Basics - Anfänger-Themen 17
Zed Collections? ArrayList, Vector. Java Basics - Anfänger-Themen 2
M Collections kopieren (ArrayList<Point>) Java Basics - Anfänger-Themen 3
T Fragen zu Collections Java Basics - Anfänger-Themen 2
J Collections "schachteln" Java Basics - Anfänger-Themen 5
ff Java Collections Java Basics - Anfänger-Themen 4
H Collections Frameworks Java Basics - Anfänger-Themen 38
T Object Collections durchsuchen und nutzen Java Basics - Anfänger-Themen 6
S Mit Collections elemente sammeln Java Basics - Anfänger-Themen 7
D Collections.sort() frage Java Basics - Anfänger-Themen 6
G Java Collections Framework : id + 5 Werte , gibt es sowas Java Basics - Anfänger-Themen 4
frau-u Collections und Interfaces Java Basics - Anfänger-Themen 2
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
I No EJB found with interface of type Java Basics - Anfänger-Themen 12
J Scanner cannot be resolved to a type Java Basics - Anfänger-Themen 3
Denix The public type Main must be defined in its own fileJava(16777541) Java Basics - Anfänger-Themen 13
M Umgang mit dem Type "Date" Java Basics - Anfänger-Themen 6
N Fehler "Cannot instantiate the type" Java Basics - Anfänger-Themen 3
nbergmann The type JOptionPane is not accessible. Java Basics - Anfänger-Themen 4
M Type Erasure in Java Java Basics - Anfänger-Themen 12
Vivien Hilfe bei Type Conversion Java Basics - Anfänger-Themen 3
Flo :3 Variablen Type dismatch: cannot convert from string to int Java Basics - Anfänger-Themen 9
P Jackson mapper.readValue mit generischem Type Java Basics - Anfänger-Themen 10
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
D Klassen undefined for the type 'object' Java Basics - Anfänger-Themen 2
N The method setSaldo(double) in the type Konto is not applicable for the arguments (int, int) Java Basics - Anfänger-Themen 2
F Type safety: A generic array of.. Fehler Java Basics - Anfänger-Themen 3
W The type Long is not visible HashMap Java Basics - Anfänger-Themen 4
J-Gallus Ein Getter bekommt eine anderen Type als er Return soll Java Basics - Anfänger-Themen 9
S Fehler: Editor does not contain a main type Java Basics - Anfänger-Themen 3
G Programm wird nicht ausgeführt: Editor does not contain a main type Java Basics - Anfänger-Themen 10
Syncopated Pandemonium Compiler-Fehler The constructor MP3File(File) refers to the missing type NoMPEGFramesException Java Basics - Anfänger-Themen 7
K Operatoren The Operator * is undefined for the argument type(s) double, String Java Basics - Anfänger-Themen 4
K VerketteteListen unexpected type Fehler Java Basics - Anfänger-Themen 2
B OOP Cannot instantiate the type AuDList<Integer> Java Basics - Anfänger-Themen 18
T Compiler-Fehler Null type safety (type annotations) Java Basics - Anfänger-Themen 5
B Methoden The method mirror(double[]) in the type Convolution is not applicable for the arguments (double) Java Basics - Anfänger-Themen 8
I Fehlermeldung: Java does not contain a main type Java Basics - Anfänger-Themen 1
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
V RMI - argument type mismatch Java Basics - Anfänger-Themen 1
S Selection does not contain a main type! Java Basics - Anfänger-Themen 5
R The method printf(String, Object[]) in the type printStrem in not applicable for the arguments ... Java Basics - Anfänger-Themen 3
M "illegal start of type" eindimensionales Schiffe versenken Java Basics - Anfänger-Themen 7
S Vererbung Fehlermeldung: the hierarchy of the type "class name" is inconsistent Java Basics - Anfänger-Themen 10
S Selection does not contain a main type Java Basics - Anfänger-Themen 12
H enum Type Java Basics - Anfänger-Themen 6
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
P Variablen generic type variablen in object array Java Basics - Anfänger-Themen 1
P enum: cannot be resolved to a type Java Basics - Anfänger-Themen 2
I Erste Schritte Eclipse - Does not contain a main type Java Basics - Anfänger-Themen 8
W Enum Konstruktor Type Java Basics - Anfänger-Themen 2
C MIME-Type null Java Basics - Anfänger-Themen 4
L The operator && is undefined for the argument type(s) String, boolean Java Basics - Anfänger-Themen 8
G default class type Java Basics - Anfänger-Themen 3
J Type inference Java Basics - Anfänger-Themen 26
C Warning: Type safety: Potential heap pollution via varargs parameter array Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben