Very very few algorithms or facilities are re-used for more than two or three types without substantial internal changes. There is a list of standard data structures that are and can be re-used a lot. It’s just that the list is in the dozens, not the thousands. Mostly searching and sorting. Generics are a way to try to build the data structure into the language (this has value). But there has to be a better way than generics.

As a side note. The visuals of generics are awful.