The refactoring introduced by RFE 1754742 is really backwards. The supplier method should not be an abstract method. The abstract methods should be allIndexes and allItems. Defining allItems by using supplier allItems is a very badly performing implementation. This would force many extra items to get created for some very fundamental operations, rending these default implementations essentially useless. On top of that, any implementation would need to produce the equivalent of allItems and allIndexes results just to implementent a supplier method in the first place.