Boa noite, estou com um probleminha que ainda não consegui resolver.
Por exemplo, criei um método que preenche um lista em ordem de cada alimento com a qtde de nutrientes do mesmo tamanho que o alimento que possui mais nutrientes. Quando o alimento nao possui a mesma qtde do maior, coloca zero. Certo até ai tudo bem. Agora eu preciso criar um método que lê esta lista e me diga o índice que começa cada nutriente adicionado nele, sendo que onde tem zero, o índice não é contado. Conseguiram entender?
Por exemplo:
2 5 3 9
3 6 2 2
5 1 3 0
0 2 1 0
0 3 0 0
neste exemplo os índices das colunas diferentes de zero seriam {0, 3, 8, 12}, lendo de cima para baixo, da esquerda para direita, sendo que onde tem valor zero não é contado.
Segue o método que cria uma lista como a de cima:
[code]private List montarListaConstantes(List alimentos, List necessidadeNutricionais){
List qtdNutriAlmSel = new ArrayList();
List qtdRowNutriente = new ArrayList();
for (Alimento alm : alimentos) {
qtdRowNutriente.add(alm.getNutrientesAlimento().size());
}
Integer resultado = retornaMaiorQtdNutriente(qtdRowNutriente);
for (Alimento alm : alimentos) {
for (int i = 0; i < resultado; i++) {
if (alm.getNutrientesAlimento().size() == resultado) {
qtdNutriAlmSel.add(alm.getNutrientesAlimento().get(i).getNutriente().getQuantidade() / 100);
qtdNutriAlmSel.add(alm.getNutrientesAlimento().get(i).getNutriente().getQuantidade() / 100);//add 2x p/ 2restricoes
} else if (i < alm.getNutrientesAlimento().size()){
qtdNutriAlmSel.add(alm.getNutrientesAlimento().get(i).getNutriente().getQuantidade() / 100);
qtdNutriAlmSel.add(alm.getNutrientesAlimento().get(i).getNutriente().getQuantidade() / 100);
} else {
qtdNutriAlmSel.add(0D);
qtdNutriAlmSel.add(0D);
}
}
}
return qtdNutriAlmSel;
}[/code]
Por enquanto obrigado.