3

I have a requirement, where I have to fecth record and put it in a Map. I have a custom Object My_Object__c and it has 2 fields : child_Name__c and Parent_Name__c.

What I did, I query from the My_Object__c and put the record in Map<String, My_Object__c> dataMap.

Now I want to store data in a Map. Map<String, Set<String>> secondMap// 1st String : parent_Name__c and 2nd String : child_Name__c. where 1st string is the unique value.

Table will look like below.

child_Name__c Parent_Name__c A AB B AB C AB K BC F BC

dataMap :[AB : {A,B,C}, BC : {k,F}]

This is what I did :

**Class **

dateMap = new Map<String, My_Object__c >();
for(My_Object__c obj : [select Id,child_Name__c,Parent_Name__c
                         from My_Object__c 
                        ]) {
    dateMap.put(obj.child_Name__c, obj );   
}

By using this dataMap, how I will create the Map<String, Set<String>> secondMap

1 Answer 1

4

You may not require to use first map i.e datamap. You can create 2nd map directly as follows:

Map<String, Set<String>> secondMap = new Map<String, Set<String>>(); 
for(My_Object__c obj : [select Id,child_Name__c,Parent_Name__c from My_Object__c]) {
    if(!secondMap.containsKey(obj.parent_Name__c)){
         secondMap.put(obj.Parent_Name__c, new Set<String>{obj.child_Name__c});

    }else{
         secondMap.get(obj.Parent_Name__c).add(obj.child_Name__c);
    }
}

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .