java datenTypen frage (concurrentHashMap <int, Set>)

Nobody

Mitglied
hmm irgendwie hab ich das gefühl ich sollte mal was über java datenTypen lesen, aber irgendwie find ich einiges aber nichts was mir hilft...

ich brauche ein Set von Set<int> oder halt ein concurrentHashMap <int, Set> ... meinetwegen auch int, list

also etwas wo ich nach meinIrgendwas[meineInt] oder meinIregndwas.get(meineInt ) ein set oder eine list erhalte in der ebenso nur int enthält

oder eine list oder eine collection oder eine hashMap mit dieser Funnktionalität

dabei sollte das ganze growable sein also nicht vorweg mit fester grösse implementiert werden und nicht unbedingt das langsamsten sein was java kann.

zweck... ich möchte über die UserID eines benutzers alle UserID's anderer User speichern und abrufen können welche in bestimmter relation zu der Index(Key) UserID stehen, da ich vorher weder anzahl der User noch die der in relation zu diesem stehenden erraten kann growable...

weiterer zweck (falls es interessiert) : aus diesem Set (oder was auch immer) möchte ich dann mittels itterator oder length oder size (sortiebar brauchts nicht zu sein) einfach nur die int's auslesen und mittels diesen dann die dazugehörigen objecte laden...



int[][] wär ja schon was ich bräuchte ist aber nicht growable
conncurrentHashMap erlaubt keine int als Key...

wäre echt dankbar für jeden denkanstoss oder auch eiinem Link zu einem generellen vergleichen mit anwendungsbeispielen.

mfg
 
Zuletzt bearbeitet:
Hallo Nobody,

probier's mal so:
Java:
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

public class IntegerSetMap {	
	public static void main(String args[]) {
		Map<Integer, Set<Integer>> map = new HashMap<Integer, Set<Integer>>();
		
		map.put(42, new HashSet<Integer>());
		map.get(42).add(6);
		map.get(42).add(7);
		map.get(42).add(23);
		
		for (int i : map.get(42)) {
			System.out.println(i);
		}
	}	
}

Grüße, Matthias
 
Ahhhhh mit Integer geht das, RIESIGEN DANK...

...ein lichtlein brennt... (bei "int" hatte ich immer refference benötigt) hmmm.

Noch eine Frage...:D auch in dieser Richtung

Um einen User auf einem "Spielfeld" (2D also x,y ) zu lokalisieren benötige ich neben den UserObjecten (in denen auch deren position enthalten ist) eine art ich nenns nun mal 2Dimensionales Array indem ich ein Set oder eine List speichern kann

Momentan nutze ich da String[][] und kette dann einfach die userID's mit nem Trennungszeichen aneinander und arbeite dann nötigenfalls mit "split" oder replace(value, "") zum trennen oder löschen... ist zwar ne lösung aber lieber wärs mir natürlich wenn ich das auch in einer art format wie oben hätte also

[int][int][Set]

wie gesagt momentan hab ich da

[int][int][String]

was einerseits schön ist, da ich hier wieder was habe was wachsen kann, da ich nicht vorhersehen kann ob nun ein user auf position 100,100 stehen wird oder sich dort 300 zum plausch verabreden, andererseits natürllich unschön weil ich so erst spliten muss um die userID´s einzeln auszulesen und dann noch iterieren, würde natürlich mehr sinn machen wenn ich was hätte was ich irekt iterieren kann.
 
Hallo,

ich bitte dich, deine Shift-Taste doch etwas öfter zu verwenden und auf die Groß- und Kleinschreibung zu achten.

Gruß

Sascha
 
Zu deiner zweiten Frage:

also du könntest so was machen:
Code:
Set<String>[][] spielfeld = new Set<String>[][]

Christoph
 
Danke sehr, hab ich inzwischen so ähnlich nur mit <int> weil ich vom String weg wollte und die userID's welche im SET gespeichert werden sollen eh eine Integer sind.

Sorry hätte den Beitrag als erledigt abhaken sollen.

Aber vielen Dank, die Datentypen in Java sind etwas verwirrend, das was man(ich) sonst als Array kennt ist ein String[], alles was einen <int> Index hat muss man vorher in der Grösse definieren oder ist eigentlich für asoziative key value pairs gemacht und je nach Typ dadurch vergleichsweise 20 mal lahmer (laut dem was ich so lese.

thx noch mal :)
grüsse
 
Aber vielen Dank, die Datentypen in Java sind etwas verwirrend, das was man(ich) sonst als Array kennt ist ein String[],

Sorry muss doch mal was dazu sagen. Die eckigen Klammern sagen schlicht und einfahc, dass es ein Array ist. String sagt nur aus, dass es eben ein Array aus Strings ist. Wenn es dir besser gefällt, kannst du es auch so schreiben:
Java:
String arr[];
 
Ah danke für das Richtigstellen ich kannte bei der Typisierung der Values oder Keys bei Java bisher nur holderType<keyType, valueType> oder zum casten ().

thx nochmal :)

Ich werde demnächst allerdings nochmal ähnliches Fragen, da ich sehr viele concurrentHashMaps benutze und ich gern wissen würde ob es für meine Anwendung nicht Performanteres gibt.

wie gesagt riesen Dank ;)
Grüsse
 

Neue Beiträge

Zurück