私がやろうとしているのは、Move オブジェクトを topMoves という名前のベクターに保存することです。多くの Move オブジェクトが存在するため、ループ内にオブジェクトを作成します。
pastPriceMap は、過去のある時点 (この場合は 1 分前) の株式の価格を格納します。currPriceMap は、最後の 1 秒以内のある時点での株式の価格を格納します。
次の例外が発生します。
スレッド「Timer-0」での例外 java.util.NoSuchElementException
これが問題の原因となっている行です: amove.setInitPrice(pastPriceMap.get(iter.next()));
コード スニペットを以下に示します。System.out.println ステートメントを実行すると、期待どおりの出力が得られます。
Iterator<String> iter = sortedTopCodes.iterator();
while(iter.hasNext()){
System.out.println(currPriceMap.get(iter.next()));
System.out.println(pastPriceMap.get(iter.next()));
Move amove = new Move();
amove.setSecCode(iter.next());
amove.setPrice(currPriceMap.get(iter.next()));
amove.setInitPrice(pastPriceMap.get(iter.next()));
topMoves.add(amove);
}
return topMoves;
Move クラスは次のようになります。
private String secCode;
private double price;
private double initPrice;
public String getSecCode() {
return secCode;
}
public void setSecCode(String secCode) {
this.secCode = secCode;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public double getInitPrice() {
return initPrice;
}
public void setInitPrice(double lastPrice) {
this.initPrice = lastPrice;
}