Я часто использую трюк, который может помочь, скажем, у вас есть метод, который берет коллекцию.
populate(List<String> list);
, и вы не хотите менять метод, но знаете, что он использует только add() метод.Вы можете сделать следующее
List<String> list = new ArraysList<String>() {
public boolean add(String text) {
myProcess(text);
return false;
}
};
populate(List<String> list);
В этом случае заполнение может добавить любой объем данных без использования дополнительной памяти.