Класс итератора ArrayList ArrayList.Itr является частным, поэтому я не могу создать подкласс этого парня.
Доступ к ArrayList.Itr в ArrayList является частным, поэтому я не могу предоставить свою собственную реализацию.1004 * Единственный способ понять, как это сделать - это создать подкласс ArrayList, переопределить iterator (), взять этот итератор и обернуть и делегировать его моему собственному объекту Iterator, который запрещает доступ для удаления.(Или оберните и делегируйте ArrayList себе и сделайте то же самое)
Collections.unmodifiableList делает то же самое, в основном.
Но это приведет к созданию двух объектовкаждый раз, когда вызывается MyArrayList.iterator (), что в моей среде неоптимально.
Идеи?
edit:
В этой среде GCing небольших объектов является главная серьезная проблема .Эта среда вызывает итераторы списков сотен миллионов раз за очень короткие периоды.Нам нужно как можно меньше GC побеждать.Это не преждевременная оптимизация.Это очень поздняя оптимизация.Это не какое-то игрушечное приложение.Это кластерная система веб-масштаба, работающая с абсолютным пределом аппаратного обеспечения.