Orientacao a objetos

6 respostas
luiz.kava
import java.util.ArrayList;
public class ListadeContatos {
	public static void main(String[] args) {
		ArrayList<Contato> lc = new ArrayList<Contato>();
		Contato c1 = new Contato ("PUCPR", "[email removido]", 2);
		Contato c2 = new Contato ("Beltrano de tal", "[email removido]");
		Contato c3 = new Contato ("Fulano de tal", "[email removido]", 3);
		Contato c4 = new Contato ("ique", "ique16@hot", 2);
		lc.add(c1);
		lc.add(c2);
		lc.add(c4);
		listaContatos(lc);
		lc.add(c3);
		c2.setCategoria(1);
		c1.setNomeCategoria(1, "Galera de casa");
		listaContatos(lc);
		listaContatosCadastradosEm(lc);
		listaContatosOrdenadosPorCategoria(lc);
	}
	private static void listaContatos (ArrayList<Contato> lista) {
		for (int i = 0; i < lista.size(); i++) {
			System.out.println((i+1) + ":" + lista.get(i));
		}
	}
	public static void listaContatosCadastradosEm (ArrayList<Contato> list){
		for (int i =0; i < list.size(); i++ ){
			System.out.println("\n >>>"+ list.get(i).getNome());
		}

	}
	public static void listaContatosOrdenadosPorCategoria(ArrayList<Contato> list){
		for (int i = 0; i < list.size(); i++){
			System.out.println("\n --->"+ list.get(i).getCategoria());
								
			
				System.out.println("\n ---" + list.get(i).getNome());
			}
		}


	



}
como faço um método que deve mostrar todos os contatos separados por categoria, ou seja, informa o nome da categoria e os contatos existentes daquele tipo, para todas as categorias existentes. se obsevarem eu tentei
public static void listaContatosOrdenadosPorCategoria(ArrayList<Contato> list){
		for (int i = 0; i < list.size(); i++){
			System.out.println("\n --->"+ list.get(i).getCategoria());
								
			
				System.out.println("\n ---" + list.get(i).getNome());
			}
		}
mas ele mostra cada um separado ... vlw ..

6 Respostas

lina

Oi,

Bem vindo ao guj.

Primeiramente… edit seu post colocando o mesmo entre as tags para uma melhor visualização, ok?

De uma olhada neste link: (Irá explicar exatamente como deverá ser feito os passos acima)

http://www.guj.com.br/posts/list/50115.java

Tchauzin!

nel

Luiz, primeiro siga as intruções da Lina, caso contrário, além de um post no formato errôneo, está postando um código de dificil entendimento (estou me referindo, neste caso, a visualização do seu código).

Mas ai vai uma dica, se criou um List de objetos do tipo Contato, use o foreach, vai facilitar muito a sua vida.
Segue exemplo:

//ele percorre sua lista e "extrai" de cada posição da lista o objeto especificado, no caso o Contato //é mais ou menos esta a ideia. for(Contato contato : list){ System.out.println(contato.getCategoria); System.out.println(contato.getNome()); }

E não esqueça, arrume seu post e caso isso tenha resolvido seu problema poste [RESOLVIDO] ao lado do seu tópico!
Abraços! :slight_smile:

luiz.kava

lina:
Oi,

Bem vindo ao guj.

Primeiramente… edit seu post colocando o mesmo entre as tags para uma melhor visualização, ok?

De uma olhada neste link: (Irá explicar exatamente como deverá ser feito os passos acima)

http://www.guj.com.br/posts/list/50115.java

Tchauzin!

Ok ja coloquei ali…mto obrigado :stuck_out_tongue:

luiz.kava

nel:
Luiz, primeiro siga as intruções da Lina, caso contrário, além de um post no formato errôneo, está postando um código de dificil entendimento (estou me referindo, neste caso, a visualização do seu código).

Mas ai vai uma dica, se criou um List de objetos do tipo Contato, use o foreach, vai facilitar muito a sua vida.
Segue exemplo:

//ele percorre sua lista e "extrai" de cada posição da lista o objeto especificado, no caso o Contato //é mais ou menos esta a ideia. for(Contato contato : list){ System.out.println(contato.getCategoria); System.out.println(contato.getNome()); }

E não esqueça, arrume seu post e caso isso tenha resolvido seu problema poste [RESOLVIDO] ao lado do seu tópico!
Abraços! :slight_smile:

nel

O GUJ é um excelente fórum, com certeza.

Então, sem querer acredito que postou o que você queria dizer como comentário de outra pessoa, mas vou ver se entendo. Você quer o nome de todos aqueles que pertençam a mesma categoria, é isso?

Creio que seja melhor algo do tipo:

//cria uma classe Categoria que possui como atributos nome e o objeto Contato
public class Categoria{
   private String nome;
   private List<Contato> listContato;

  //getters and setters
}

Aqui a classe que está utilizando:

//lembre-se de setar uma lista de contatos dentro do objeto Categoria, exemplo:
List<Contato> list = new ArrayList<Contato>();
List<Categoria> listCategoria = new ArrayList<Categoria>();

Categoria categoria = new Categoria();
categoria.setNome("Nome");
categoria.setListContato(list);

for(Categoria data : listCategoria){
    //pega a lista de contatos de uma determinada categoria
    for(Contato contato : data.getListContato){
        //imprime o nome da categoria - refere-se a lista de categorias
        System.out.println(data.getNome());
        //nome do contato para aquela categoria
        System.out.println(contato.getNome());
   }
}

Não esqueça de popular as listas com o que deseja, acredito que isso resolva.
Não tive como testar já que estou no trabalho, mas preste atenção, popule uma lista de contatos que queira para uma determinada categoria e insira esta lista para a categoria que deseja e assim por diante ok?

Abraços!

luiz.kava
nel:
O GUJ é um excelente fórum, com certeza.

Então, sem querer acredito que postou o que você queria dizer como comentário de outra pessoa, mas vou ver se entendo. Você quer o nome de todos aqueles que pertençam a mesma categoria, é isso?

Creio que seja melhor algo do tipo:

//cria uma classe Categoria que possui como atributos nome e o objeto Contato
public class Categoria{
   private String nome;
   private List<Contato> listContato;

  //getters and setters
}

Aqui a classe que está utilizando:

//lembre-se de setar uma lista de contatos dentro do objeto Categoria, exemplo:
List<Contato> list = new ArrayList<Contato>();
List<Categoria> listCategoria = new ArrayList<Categoria>();

Categoria categoria = new Categoria();
categoria.setNome("Nome");
categoria.setListContato(list);

for(Categoria data : listCategoria){
    //pega a lista de contatos de uma determinada categoria
    for(Contato contato : data.getListContato){
        //imprime o nome da categoria - refere-se a lista de categorias
        System.out.println(data.getNome());
        //nome do contato para aquela categoria
        System.out.println(contato.getNome());
   }
}

Não esqueça de popular as listas com o que deseja, acredito que isso resolva.
Não tive como testar já que estou no trabalho, mas preste atenção, popule uma lista de contatos que queira para uma determinada categoria e insira esta lista para a categoria que deseja e assim por diante ok?

Abraços!

Velinho mais ai ocorre que Categoria é uma instância da minha classe Contato, eu tenho que apenas referencia-la.
manja ....

Criado 19 de outubro de 2009
Ultima resposta 21 de out. de 2009
Respostas 6
Participantes 3