Pegar os indices colunas diferentes de zero

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.