I do not understand why my values keep getting switched. I think it assigns the value of the first input value box to the first item added and the value fields are not in order of the objects.
  

<apex:outputPanel id="OutputBox">
        <apex:inputText value="{!...}" rendered="{!OR(contains(...), contains(...))}">
            </apex:inputText>

            <apex:inputCheckbox value="{!...}" rendered="{!contains(...)}">
            </apex:inputCheckbox>

            <apex:SelectList rendered="{!contains(...)}" size="1" value="{!...}">
                <apex:SelectOptions value="{!picklist}" />
            </apex:SelectList>

                   
   	 </apex:outputPanel>
		 //
		 Sample Output First Save
		 
		 Name          Value
		 
		 Object2		55	 // Added Second datatype: String
		 Object1		33   //Added First datatype: String
		 
Output after save button is clicked again with no change, values get switched.
		 
		 Object2		33	 // Added Second datatype: String
		 Object1		55   //Added First datatype: String
		 
		 //
Object are stored in a Map which is changed to a list using map.value() for displaying: