Michael Lanham
asked on
Java 7 HashMap of Generics
I have a situation where I think a HashMap of Generic types is the best data structure, but having a challenge implementing it...which of course makes me think I either did to learn Java better or am choosing the wrong data structure
I have 50+ networks of the form Network <S,T> where S & T are classes of Agent, Knowledge, Resource, Location (and others)...all of which extend Node
Each network has a String name of the form "agent x knowledge" where each portion of the label corresponds to the class of the vertex.
I think I want a HashMap<String, Network<S,T>>...
I'm having a challenge using a nested for loop to run through the list of Class types and create the networks...pseudo code below
I have 50+ networks of the form Network <S,T> where S & T are classes of Agent, Knowledge, Resource, Location (and others)...all of which extend Node
Each network has a String name of the form "agent x knowledge" where each portion of the label corresponds to the class of the vertex.
I think I want a HashMap<String, Network<S,T>>...
I'm having a challenge using a nested for loop to run through the list of Class types and create the networks...pseudo code below
for each source node class {
for each sink node class {
Network <Source, Sink> = new Network <Source, Sink>()
}
}
I had thought an array of Class[] = {Agent.class, Resource.class} would work as a source in a foreach loop, like thisfor (Class src : nodeClassesOfInterest){
for (Class sink : nodeClassesOfInterest){
Network<src, sink> = new Network<src,sink> ();
}
}
but eclipse reports an error that I forget at the moment. Is the above legal? If so, anything obvious that leaps out at you (the reader) to help me fix? If illegal by language syntax or conventions, what are the alternatives to hand encoding 50+ networks? Is there a better choice in STL or elsewhere for storing this set of networks of varying node types?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
My intended use, to possibly guide suggestions for other (better?) data structure, follows...
Used to capture "Dynamic meta-networks" that are models of, in this case, of socio-technical organizations. Node types include agent, organization, resource, task, knowledge, belief, action, location, and event. Generally these get used with networks of the form src x sink (can also be thought of as sparse matrices of src x sink). The counting of links and matrix algebra help generate social network analysis (SNA) metrics (e.g., betweenness centrality, and when using >=2 matrices, task-knowledge congruence for agents). That is the general abstracted purpose...make sense?
In my particular case right now, I need to generate many artificial 'organizations' comprised of these multiple vertice types for ingestion by an application called ORA, written at Carnegie Mellon University (CMU)'s Center for Computational Analysis of Social and Organizational Systems (CASOS). I have briefly looked at JUNG to see if I could use different vertex types in the same graph, and I do not see that as feasible--room for education though! The random organization generation is in support of a SNA measure development effort and sensitivity analysis of the measure. Is that sufficient detail?