Я работаю над проектом Java и по какой-то причине не могу понять, почему мой код не проходит мимо для цикла.Java Stuck in For Loop
float gain = 0;
float loss = 0;
for(int i = this.currentLine - 14; i < this.currentLine; i ++){
StockLine pd = (StockLine) this.rows.get(i);
gain += pd.getGain();
loss += pd.getLoss();
System.out.println(i);
}
System.out.println("WHY ISN'T THIS BEING PRINTED");
Если бы я должен был удалить это три линии он работает, как ожидалось:
StockLine pd = (StockLine) this.rows.get(i);
gain += pd.getGain();
loss += pd.getLoss();
this.rows является ArrayList с большим количеством объектов (засыпи). Около 200 элементов.
Имеет ли Java ограничение на количество объектов, которые может содержать ArrayList?
Код скомпилирован и выполнен успешно без предупреждений или ошибок. Поэтому я понятия не имею, что здесь происходит.
Любая помощь будет принята с благодарностью.
Заранее спасибо.
Ахмад
EDIT:
Спасибо за быстрый ответ всем. Ниже приведен текущий класс. Единственная другая часть проекта - чтение файла по очереди и вызов метода () ниже.
Метод getGain() и getLoss() просто возвращает число с плавающей точкой.
Это класс ReadStock или это
package nyc.amin;
import java.util.ArrayList;
public class ReadStock implements ReadFileInterface
{
private int currentLine = 0;
private ArrayList rows = new ArrayList();
@Override
public void file(String line)
{
if(this.currentLine == 0){
this.currentLine ++;
return;
}
String[] row = line.split(",");
StockLine currentDay = new StockLine();
currentDay.setDate(row[0]);
currentDay.setTime(row[1]);
currentDay.setOpen(row[2]);
currentDay.setHigh(row[3]);
currentDay.setLow(row[4]);
currentDay.setClose(row[5]);
currentDay.setVolume(row[6]);
if(this.currentLine >= 2){
StockLine previousDay = (StockLine) this.rows.get(this.rows.size() - 1);
currentDay.setGainOrLoss(currentDay.getClose() - previousDay.getClose());
if(this.currentLine == 15){
float gain = 0;
float loss = 0;
for(int i = this.currentLine - 14; i < this.currentLine; i ++){
StockLine pd = (StockLine) this.rows.get(i);
gain += pd.getGain();
loss += pd.getLoss();
System.out.println(i);
}
System.out.println("WHY ISN'T THIS BEING PRINTED");
}
}
this.rows.add(currentDay);
this.currentLine ++;
}
@Override
public void end()
{
//System.out.println("----------------");
//System.out.println(this.rows.size());
}
}
Дайте нам код, который мы можем выполнить сами, и который демонстрирует проблему, с которой вы сталкиваетесь. Чаще всего, вы сами решите проблему, правильно разобрав все. –
Что печатает? – ControlAltDel
Что это такое? – Compass