考虑一个文件读取场景,其中第一行是标题。逐行循环文件时,将使用“if 条件”来检查当前行是否为第一行。
for(Line line : Lines)
{
if(firstLine)
{
//parse the headers
}else
{
//parse the body
}
}
Run Code Online (Sandbox Code Playgroud)
现在,由于控件已进入“if 块”内部,因此在所有其他事件中,检查“if 条件”是一种浪费。
java中是否有任何概念,一旦执行后,特定的代码行就会消失?
我认为如果引入或它已经存在,这将是一个很棒的功能?
编辑:谢谢你的回答。正如我所见,有许多基于“划分数据集”的方法。因此,不是“第一行”,而是考虑有一条“特殊行”。
for(Line line : Lines) //1 million lines
{
if(specialLine)
{
//handle the special line
}else
{
//handle the rest
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码块中,假设特殊行只在迭代了一半到 100 万次之后出现,您将如何有效地处理这种情况?
稍微改变一下逻辑怎么样!
因此,因为标题是第一行,您可以获取 firstLine 并单独解析它,然后从第二行开始解析正文:
List firstLine = Lines.get(0);
//parse the headers ^------------------Get the first line
for (int i = 1; i < Lines.size(); i++) {
// ^--------------------------------Parse the body starting from the 2nd line
//parse the body
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您不需要任何验证。