这个问题更多关于最佳实践而不是从列表中获取元素。
我有一个ArrayList,通过使用简单的for循环进行迭代。如果出现某个关键字,我需要将下面的三个元素与特定模式进行比较。
private static boolean areVectorArgumentsValid(ArrayList<String> fileContent)
{
for (int i=0; i<fileContent.size(); i++)
{
if (fileContent.get(i).equals(NORMAL) || fileContent.get(i).equals(VERTEX))
{
// get the next three elements of "fileContent" and see if they match a certain pattern
}
}
return true;
}
我的第一种方法是在实际的外部循环中再使用另一个for循环,然后将i增加3:
for (int j=i+1; j<=i+3; j++)
{
if (!fileContent.get(j).matches(PATTERN))
{
return false;
}
}
i+=3;
正如您所看到的,使这个方法做我想要它做的事情并不难,但是......我不确定是否有一种你会称之为更加优美的方法。