Hallo Lina,
Ich würde das so implementieren:
HashSet extensions = new HashSet();
public boolean accept(File f){
if(f.isDirectory()) {
return true;
}
else {
int i = f.getName().lastIndexOf('.');
return i != -1 && extensions.contains(f.getName().substring(i + 1));
}
}
indexOf durchsucht immer den ganzen String von vorne. Das ist bei langen Pfaden und vielen Dateien natürlich langsam.
Außerdem ist ein HashSet bei vielen Elementen wesentlich schneller als ein Array, wenn man darin ein bestimmtes Element finden will. So lange Du nur wenige zulässige Endungen hast, wirkt sich das aber vermutlich nicht aus.
Grüße
Daniel