How are you generating your ABMList items in the first place? I just maintained a list of maps.
So each list entry would be the list name - Going off the demo - (Family, Colleagues, Friends, Others) and each map would contain the items on each relevant list (Mom, Dad, Brother, Sister)
In ConnectPage I would then use the list to insert values into the ABMList. That way you can simply iterate through whatever elements you need to in your list rather than the ABMList