你如何在一个for循环中写这个
for (File file:files)
{
if (file.getName().endsWith(".dat")) {
Species x = reader.readSpecies(file);
allSpecies.add(x);
allGenes.addAll(x.getGenome());
}
}
for (File file:files){
if (file.getName().endsWith(".dat")) {
Species x = reader.readSpecies(file);
x.setIndices(allGenes);
}
}
我希望它使用一个循环来运行一个段的for循环而不是下一个循环。这可能吗?如果没有,我写的代码是否违反DRY?
好的,到目前为止,没有人回答我的问题。我希望代码能够完成整个第一个循环。然后整个第二个循环。 set indexes方法直到allGenes.addAll在循环中完成for file后才能工作。
答案 0 :(得分:2)
应该是
for (File file:files){
if (file.getName().endsWith(".dat")){
Species x = reader.readSpecies(file);
allSpecies.add(x);
allGenes.addAll(x.getGenome());
x.setIndices(allGenes);
}
}
答案 1 :(得分:0)
if (file.getName().endsWith(".dat")){
Species x = reader.readSpecies(file);
x.setIndices(allGenes); // Take out this line from for loop 2 and put it inside for loop 1
allSpecies.add(x);
allGenes.addAll(x.getGenome());
}
由于if
循环中的for
条件相同,因此只需将上述语句从第二个for
移动到第一个for
即可合并两者。 1}}。
答案 2 :(得分:0)
只需将第二个循环中的x.setIndices(allGenes)
添加到allGenes.addAll(x.getGenome())