Pegar os indices colunas diferentes de zero

0 respostas
lyon

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:

private List<Double> montarListaConstantes(List<Alimento> alimentos, List<NecessidadeNutricional> necessidadeNutricionais){
		List<Double> qtdNutriAlmSel = new ArrayList<Double>();
		List<Integer> qtdRowNutriente = new ArrayList<Integer>();

		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;
	}

Por enquanto obrigado.

Criado 18 de outubro de 2011
Respostas 0
Participantes 1