يمكن أن يكون هذا هو الحال بالنسبة لـ Iterator و Iterator
معلومات المنتج:
package archiver.util;
استيراد java.io.File؛
import java.util.ArrayList;
استيراد java.util.Arrays؛
import java.util.Iterator;
import java.util.List;
الطبقة العامة FileIterator تنفذ Iterator<File>, Iterable<File> {
مكرر خاص <سلسلة>؛
مسارات قائمة <سلسلة> خاصة؛
القائمة الخاصة<ملف>ديرس؛
FileIterator العام (قائمة <سلسلة> المسارات) {
this.paths = new ArrayList<String>(paths);
this.dirs = new ArrayList<File>();
this.iterator = this.paths.iterator();
}
الملف العام التالي () {
ملف الملف = فارغ؛
إذا (هاسنكست () {
file = new File(iterator.next());
إذا (file.isDirectory()) {
dirs.add(file);
}
}
ملف الإرجاع؛
}
المنطقية العامة hasNext() {
إذا (!iterator.hasNext()) {
paths.clear();
لـ (ملف دير : دير) {
لـ (اسم السلسلة: dir.list()) {
paths.add(dir.getPath()+File.separator+name);
}
}
dirs.clear();
إذا (paths.size() == 0) {
عودة كاذبة.
}
مكرر = paths.iterator();
}
عودة صحيحة؛
}
@تجاوز
إزالة الفراغ العام () {
رمي UnsupportedOperationException () الجديد ؛
}
@تجاوز
مكرر عام <File> مكرر () {
رد هذا؛
}
public static void main(String[] args) {
FileIterator iter = new FileIterator(Arrays.asList("."));
لـ (ملف الملف: iter) {
System.out.println(file);
}
}
}