Java для цикла в массиве - PullRequest
       46

Java для цикла в массиве

1 голос
/ 06 марта 2012

Этот вопрос, вероятно, лучше всего подходит для тех, кто имеет представление о планировании чтения с диска.

У меня есть код:

for(int i = readqueue_tail; i<readqueue_head; i++) 

Затем я использую i для доступа к элементам массива readqueueдо 255. Однако, как только очередь заполняется, она начинает заполняться снова с 0 (так как эти запросы будут обслуживаться, это не имеет значения).

Проблема, с которой я сталкиваюсь - это поискот хвоста до заголовка readqueue_head, как когда голова зацикливается и снова проходит 0, условие цикла не выполняется.Как мне исправить это?

Ответы [ 4 ]

3 голосов
/ 06 марта 2012

Другие опции - просто использовать по модулю.

int i = readqueue_tail;
while (i != readqueue_head)
{
    i = (i + 1) % 256;
}
2 голосов
/ 06 марта 2012
int i = readqueue_tail;
boolean stop = false;
while(!stop) {
  // process the queue item

  // advance the position
  if(i<readqueue_head) {
    i++) 
  } else {
    i = readqueue_tail;
  }
}

Это то, что вы пытаетесь сделать?

1 голос
/ 06 марта 2012
for(int i = readqueue_tail; i<readqueue_head; i++) {
if(readqueue_tail == readqueue_head )
break;
}
0 голосов
/ 06 марта 2012
for(int i = readqueue_tail; i<readqueue_head; i++) {
 if (i == readqueue_head) {
  i = readqueue_tail;
 }
}

просто чтобы быть понятным, это бесконечный цикл.

...