Вы должны попытаться не делать различий с первой папкой / путем и подпапками.Йога сейчас занимается тем, что берет все файлы и папки из папки src и добавляет их в очередь.Затем вы удаляете первое и проверяете, является ли это файлом.Если это так, то, если это соответствует шаблону, вы печатаете его.Если это не файл, вы печатаете имя и снова добавляете его в очередь!
Подумайте об этом.Если ваша папка src содержит одну папку, вы берете ее из очереди, добавляете ее обратно и повторяете до тех пор, пока очередь не станет пустой (чего, конечно, никогда не будет).
Вам нужно что-то более похожее на это
public static void find(String source,String rep) {
String pattern = ".*"+source+"$";
LinkedList<File> qu = new LinkedList<File>();
File src = new File(rep);
qu.add(src);
while(!qu.isEmpty()) {
File srcc = qu.removeFirst();
if(srcc!=null && srcc.exists()) {
if (srcc.isDirectory()) {
File[] tab=srcc.listFiles();
for(File s: srcc.listFiles()) {
qu.addLast(s);
}
} else if (srcc.isFile()) {
if(srcc.getName().matches(pattern)) {
System.out.println(srcc.getName());
}
}
}
}
}
где, если текущий файл является каталогом, все подфайлы добавляются в очередь, а если это файл, имя проверяется на совпадение.