to fazendo um execercio em java no trabalho e ta dando esse erro como consertar
package br.com.caelum.argentum.modelo;
import java.util.Calendar;
public final class Negociacao {
private final double preco;
private final int quantidade;
private final Calendar data;
public Negociacao(double preco, int quantidade, Calendar data) {
this.preco = preco;
this.quantidade = quantidade;
this.data = data;
}
public double getPreco() {
return preco;
}
public int getQuantidade() {
return quantidade;
}
public Calendar getData() {
return data;
}
}
package br.com.caelum.argentum.modelo;
import java.util.Calendar;
public final class Candlestick {
private final double abertura;
private final double fechamento;
private final double minimo;
private final double maximo;
private final double volume;
private final Calendar data;
public Candlestick(double abertura,double fechamento,double minimo,
double maximo, double volume, Calendar data) {
this.abertura = abertura;
this.fechamento = fechamento;
this.minimo = minimo;
this.maximo = maximo;
this.volume = volume;
this.data = data;
}
public double getAbertura() {
return abertura;
}
public double getFechamento() {
return fechamento;
}
public double getMinimo() {
return minimo;
}
public double getMaximo() {
return maximo;
}
public double getVolume() {
return volume;
}
public boolean isAlta() {
return this.abertura < this.fechamento;
}
public boolean isBaixa() {
return this.abertura > this.fechamento;
}
public Calendar getData() {
return data;
}
}
package br.com.caelum.argentum.modelo;
import java.util.Calendar;
import java.util.List;
public class CandlestickFactory {
public Candlestick constroiCandleParaData(Calendar data,
List negociacoes) {
double maximo = negociacoes.get(0).getPreco();
double minimo = negociacoes.get(0).getPreco();
double volume = 0;
// digite foreach e dê um ctrl + espaço para ajudar a
// criar o bloco abaixo!
for (Negociacao negociacao : negociacoes) {
volume += negociacao.getVolume();
if (negociacao.getPreco() > maximo) {
maximo = negociacao.getPreco();
} else if (negociacao.getPreco() < minimo) {
minimo = negociacao.getPreco();
}
}
double abertura = negociacoes.get(0).getPreco();
double fechamento = negociacoes.get(negociacoes.size()).getPreco();
return new Candlestick(abertura, fechamento, minimo, maximo,
volume, data);
}
}
package br.com.caelum.argentum.modelo;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
public class TesteCandlestickFactory {
public static void main(String[] args) {
Calendar hoje = Calendar.getInstance();
Negociacao negociacao1 = new Negociacao(40.5, 100, hoje);
Negociacao negociacao2 = new Negociacao(45.0, 100, hoje);
Negociacao negociacao3 = new Negociacao(39.8, 100, hoje);
Negociacao negociacao4 = new Negociacao(42.3, 100, hoje);
List<Negociacao> negociacoes = Arrays.asList(negociacao1, negociacao2,
negociacao3, negociacao4);
CandlestickFactory fabrica = new CandlestickFactory();
Candlestick candle = fabrica.constroiCandleParaData(hoje, negociacoes);
System.out.println(candle.getAbertura());
System.out.println(candle.getFechamento());
System.out.println(candle.getMinimo());
System.out.println(candle.getMaximo());
System.out.println(candle.getVolume());
}
}
ai aparece esse erro
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 4
at java.util.Arrays$ArrayList.get(Unknown Source)
at br.com.caelum.argentum.modelo.CandlestickFactory.constroiCandleParaData(CandlestickFactory.java:22)
at br.com.caelum.argentum.modelo.TesteCandlestickFactory.main(TesteCandlestickFactory.java:18)