我循环遍历字符串列表,在psudocode中这就是
for (each node in my list)
if the node.getBooleanVariable == true
add one to my counter
else
take one away from my counter
if my counter = another counter
print node.getStringVariable() //THIS IS WHERE I AM STUCK
这里我想将node.getStringVariable()中的字符串与下一个boolean元素为false的节点连接起来。这会让它更清楚吗?
感谢
答案 0 :(得分:1)
如果你的节点列表不是太长,那么将我们需要连接的字符串分离到另一个列表然后在最后连接它们会更清楚(在我看来)。例如:
for (each node in my list)
if the node.getBooleanVariable == true
add one to my counter
else
take one away from my counter
if my counter = another counter
concatList.add(node.getStringVariable())
for (each str in concatList)
finalString += str
这不是最绝对有效的方法,但也不会坏。如果您的列表只有几千个元素,您将不会注意到创建单独列表的开销。我认为用这种方式理解起来要容易一些,但这只是个人意见。
答案 1 :(得分:0)
如果您的逻辑需要在列表中“向前看”,同时迭代它以查找下一个错误节点,那么for-each可能不合适。这是因为for-each只允许您在任何给定时间查看列表的当前元素。如果你可以分享关于循环要求的一些背景信息,有人可能会建议一些无需期待的伪代码。
如果事实证明您必须向前看,则可能必须使用标准for循环来获得更多控制权。
for (int i = 0; i < myList.size(); i++) {
Node node = myList.get(i);
// oh, I have to look forward? use another for loop
for (int j = i + 1; j < myList.size(); j++) {
Node forwardNode = myList.get(j);
// do stuff with forwardNode
}
}