Resolver utilizando HashMap ou outra estrutura de coleção

3 respostas
J

Pessoal, eu tenho uma busca que me retorna um inteiro que é um id e uma String que é um nome.

Bem, eu queria pegar esses itens durante a iteração e guardá-los, acredito que um map seria a melhor opção, por exemplo:

while (resultSetLevel.next()) {
		   id_level        = resultSetLevel.getInt("sub_category");
		   menu_level = resultSetLevel.getString("section");
}

Após isso eu queria criar um

  • onde cada li teria um a href com o id no link e o nome na listagem.

    Alguma sugestão?

3 Respostas

thiago.correa
Velho não seria mais fácil ter um bean com o id e o nome do link/listagem e guardar isso em uma lista?! Algo do tipo
while (resultSetLevel.next()) {  

               id_level        = resultSetLevel.getInt("sub_category");  
               menu_level = resultSetLevel.getString("section");  
               Itens i = new Itens(id_level, menu_level);
               List l = new ArrayList();
               l.add(i);
    }
E na tua página você poderia usar
<ul>
<c:forEach var="item" items="${lista}">  
    <li><c:out value="${item.idLevel} - ${item.menu_lebel}" /></li>
</c:forEach>
</ul>

P.S.: os nomes de varíaveis se dão da seguinte maneira oNomeDaMinhaVariavel, esse estilo VB de programar fica meio ruim e é visto como má prática ;)

G

jmountain:
Pessoal, eu tenho uma busca que me retorna um inteiro que é um id e uma String que é um nome.

Bem, eu queria pegar esses itens durante a iteração e guardá-los, acredito que um map seria a melhor opção, por exemplo:

while (resultSetLevel.next()) {
		   id_level        = resultSetLevel.getInt("sub_category");
		   menu_level = resultSetLevel.getString("section");
}

Após isso eu queria criar um

  • onde cada li teria um a href com o id no link e o nome na listagem.

    Alguma sugestão?

Olá, bem, eu utilizo de duads formas

  1. Utilizo um List
public class Nivel {
	private int idNivel;
	private String sessao;
	
	public Nivel() {
		
	}
	
	public Nivel(int idNivel, String sessao) {
		
	}

	public int getIdNivel() {
		return idNivel;
	}

	public void setIdNivel(int idNivel) {
		this.idNivel = idNivel;
	}

	public String getSessao() {
		return sessao;
	}

	public void setSessao(String sessao) {
		this.sessao = sessao;
	}
	
	public void pegaValoresBanco() {
		List<Nivel> listaNiveis = new ArrayList<Nivel>();
		
		while(rs.next()) {
			listaNiveis.add(new Nivel(rs.getInt("nivel"), rs.getString("sessao")));
		}
	}
}

ou utlizando um HashMap

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


public class Nivel {
	HashMap<Integer, String> listaNiveis = new HashMap<Integer, String>();
	
	public void pegarNiveisBanco() {
		while (rs.next()) {
			listaNiveis.put(rs.getInt("nivel"), rs.getString("sessao"));
		}
	}
	
	public String getSessao(int nivel) {
		return listaNiveis.get((Integer) nivel);
	}
}

é claro que isso são apensa pequenos exemplos, vc precisa melhorar eles.

Att,
André Dalcin
Planos Assessoria

J

Valeu André, é isso aí que eu queria!

Criado 22 de fevereiro de 2012
Ultima resposta 22 de fev. de 2012
Respostas 3
Participantes 3