Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

HashMaps and parent/child relationships

Posted on 2002-04-30
3
Medium Priority
?
1,145 Views
Last Modified: 2012-05-04
I need to create a parent to child relationship of my records and would like to use hashmaps to store the data and then a TreeSet/Iterator to get the ordered value

The records are as follows and come in random order:

Record 1: Parent 1; Child 2
Record 2: Parent 2; Child 1
Record 3: Parent 1; Child 1
Record 4: Parent 3; Child 1

The output i'm trying to accomplish is:

Parent 1
     Child 1
     Child 2
Parent 2
     Child 1
Parent 3
     Child 1


I can easily fill the hash maps but can't figure out how to relate the children.

Thanks in advance.  Let me know if more clarification is needed.

Dave
 
0
Comment
Question by:mred_mred
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 7

Accepted Solution

by:
yoren earned 225 total points
ID: 6982462
One way to do this would be to create a hashmap of {Parent} --> {SortedSet of children}. You can also have a separate SortedSet of parents or even store them in the hashmap. Here's how you'd add a child:

SortedSet parents = (SortedSet) map.get("root");
Parent p1 = (Parent) parents.first();
SortedSet children = (SortedSet) map.get(p1);
if (children == null) {
  children = new TreeSet();
  map.put(p1,children);
}
children.add(new Child("Child 1"));

To get your output, just iterate through the parents; for each parent, iterate through the SortedSet of children.

Alternatively, and especially if you need more than one level of parent to child relationships, consider creating a Node class which has as a field a SortedSet of children.

0
 

Author Comment

by:mred_mred
ID: 6983835
this definitely answered my question and i did seem to figure it out while waiting.  thanks for the quick response.

i do have more than one level.  where do i find the node class?  or do i create this my self?  class.child_node or something?  or is this a java class that i can use.

thanks
0
 
LVL 7

Expert Comment

by:yoren
ID: 6983902
No, you'd have to create the Node class yourself. A Node could be a parent or a child, depending on if it has any children. Of course, this is assuming that parents and children have basically the same information. In the Node class you'll probably want a "name" field, a "children" field (which would be a SortedSet of other Nodes), and any other information pertinent to a node.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
Viewers will learn about the regular for loop in Java and how to use it. Definition: Break the for loop down into 3 parts: Syntax when using for loops: Example using a for loop:
Suggested Courses

688 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question