Galera, estou com uma dúvida sobre o código abaixo
A classe Pattern tem duas listas somente
Eu leio do excell um arquivo com tres coluna
a cada linha eu faço um objeto pattern com uma lista pegando o valor das duas primeiras colunas, e outra pegando o valor da ultima
Eu consigo ler certinho os objetos patter e adicionalo a uma lista “lop” (list of patterns) maaas
assim q eu crio um novo objeto pattern (dentro do for) e associo a ele as tres NOVAS informações ele altera NA LISTA as informações anteriores fazendo
com que todos objetos da lista fiquem iguais!!
Eis o código
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import jxl.Workbook;
public class Reader {
Workbook workbook;
public Reader(String arquivo) throws Exception{
/* pega o arkivo do Excel */
workbook = Workbook.getWorkbook(new File(arquivo));
}
public String makeDoubleFormat(String a){
if(!(a.contains(","))) return a;
else{
StringTokenizer st = new StringTokenizer(a, ",");
StringBuffer sb = new StringBuffer();
sb.append(st.nextToken());
sb.append(".");
sb.append(st.nextToken());
return sb.toString();
}
}
public List<Pattern> ReadPatterns(int numberOfOutputs){
ArrayList<Pattern> lop = new ArrayList<Pattern>();
for(int i = 0; i < workbook.getSheet(0).getRows(); i++){
Pattern aux = new Pattern();
for(int j = 0; j < workbook.getSheet(0).getColumns(); j++){
if(j < workbook.getSheet(0).getColumns() -numberOfOutputs){
aux.getListOfInputs().add(Double.parseDouble(makeDoubleFormat((workbook.getSheet(0).getCell(j, i).getContents()))));
}
else{
aux.getListOfOutputs().add(Double.parseDouble(makeDoubleFormat((workbook.getSheet(0).getCell(j, i).getContents()))));
}
}
lop.add(aux);
aux = null;
return lop;
}
}