Create an array of lists. Then have a field in each type to store the index that the list of that type is in the array. Either that or create a new type of container object, because a list is simply too simple to do what you want.
OO has nothing to do with it. Even in C you'd have the same problem.
OO has nothing to do with it. Even in C you'd have the same problem.