How to set all component's attributes value by one call of component.set();

<!--- Lightning Component  ---->
<aura:component>
<aura:attribute name="map" type="Map" default="{str1:null,str2:null,obj:null}"/>
<aura:attribute name="str1" type="String"  default="{!v.map.str1}"/>
 <aura:attribute name="str2" type="String" default="{!v.map.str2}"/>
 <aura:attribute name="obj" type="Contact" default="{!v.map.obj}"/>
</aura:component>




------------Lightning Component Controller--------------------------
fn: function(cmp, event, helper)
    {
        var map=cmp.get("v.map");//top or START of function
           //some logic here
        map['str1']='LastName';
         //some logic here
        map['str2']='Firstname';
        //some logic here
        var obj={"FirstName":"Ram","LastName":'Lakhan'};
        map['obj']=obj;

        cmp.set("v.map",map);// END of function
}

Counters