У меня 50 файлов, каждый размером 100 МБ.
Каждый файл имеет представление класса в моем коде, например:
public class FileRepresentation
{
private String path;
public FileRepresentation(String path)
{
this.path = path;
}
public String getPath()
{
return this.path;
}
}
По очевидным причинам я не могу 50 объектов, каждый по 100 МБ в моей памяти, пока я oop просматриваю его.
У меня есть класс, который содержит путь к каталогу всех файлов, и я хотел бы сделать этот класс Iterable, и может возвращать 1 объект за раз, то есть каждый запрос от Iterator (l oop), он создает новый объект и возвращает его.
public class FilesClass
{
private String folderPath;
public FilesClass(String folderPath)
{
this.folderPath= folderPath;
}
//What I want to achieve:
public FileRepresentation getNextFile()
{
return new FileRepresentation("nextFile");
}
}
Я думал о счетчике и каждой итерации просто создаю новый объект, но это кажется неправильным. Как я могу этого добиться? Есть ли лучший способ сделать это? Возможно, я ошибаюсь, и не все 50 объектов находятся в памяти, пока находится в l oop?
Спасибо.
РЕДАКТИРОВАТЬ: В итоге я создал свой предложенный метод.