@Override public File[] getAll() { // Merge files from all archives, ignoring duplicates Set<File> fileSet = new HashSet<File>(); for (Archive<File> archive : archives) { fileSet.addAll(Arrays.asList(archive.getAll())); } File[] files = new File[fileSet.size()]; fileSet.toArray(files); return files; }