Hashtable

8 respostas
jrsj

Quero guardar em uma HASHTABLE um grupo de alunos com os seguintes atributos(codigo, nome, fone, email), como faço isso? A hash não ta aceitando inserir.

Obrigado!

8 Respostas

ViniGodoy

Um HashMap associa uma chave a um valor. Por exemplo, você poderia associar um aluno a sua matrícula:

Map<Integer, Aluno> alunos = new HashMap<Integer, Aluno>();

alunos.put(1242, jose);
alunos.put(4311, pedro);
alunos.put(2314, hugo);
alunos.put(2114, julio);
alunos.put(6521, amanda);

Se vc só quer guardar alunos, sem associa-los a nada, use um List ou um Set no lugar.

jrsj

OK, que conseguir inserir! mas como guardo o restante dos atributos como fone e email?

Paulo_Silveira

jrsj:
OK, que conseguir inserir! mas como guardo o restante dos atributos como fone e email?

guarde-os dentro da sua propria classe Aluno!

betoecomp

[color=blue][b]Exato…

Eh mais facil vc criar uma classe aluno e colocar os atributos codigo, nome, fone, email e captura os mesmos com getters e setters correspondentes,

Dai para guardar na Hashtable vc guarda um objeto Aluno e uma chave à sua escolha…

vlw,
[/b][/color]

jrsj

Obrigado, agora o objeto que eu vou guardar na hashtable é a referência ao objeto aluno que é um objeto remoto, eu tô sem o código aqui, mas vou posta meu código para vc’s entenderem.

Ironlynx

Tu vai trafegar com ele na rede?Vai ter “alguem” esperando e recebê-lo formatado(um cliente de email por exemplo)?Vc poderia usar algo como o XStream…mas poste o código para entendermos melhor o que vc quer.

cardosom2003

jrsj:
Quero guardar em uma HASHTABLE um grupo de alunos com os seguintes atributos(codigo, nome, fone, email), como faço isso? A hash não ta aceitando inserir.

Obrigado!

tambem estou com esse mesmo problema… ai em baixo vai o codigo q fiz para tentar guardar os quatros atributos… gostaria d contar com a ajuda d v6 para v ond eu estou errando!
att. marcelo cardoso

package sad.rmi;

import java.rmi.<em>;

import java.rmi.server.</em>;

import java.util.*;

public class BDAcadImpl implements BDAcad {

Hashtable sistema;

public BDAcadImpl() throws RemoteException {
super();
sistema = new Hashtable();
try {
    sistema.put("001",  "antonio", "3241-1899", "[email removido]");
    sistema.put("002", "bruna","8855-8723", "[email removido]");
}
catch (NullPointerException e) {
    e.printStackTrace();
}
} 

public String consulta(String codigo) 
throws AlunoNaoCadastrado, RemoteException {
if (sistema.containsKey(codigo))
    return (String)sistema.get(codigo);
else
    throw new AlunoNaoCadastrado(codigo);
}

public void adicionaAluno (String codigo, String nome, String telefone, String Email) 
throws AlunoJaCadastrado, RemoteException {
if (sistema.containsKey(codigo))
    throw new AlunoJaCadastrado(codigo);
else
    sistema.put(codigo, nome, telefone, Email);
}

public void excluiAluno (String codigo) 
throws AlunoNaoCadastrado, RemoteException {
if (sistema.containsKey(codigo)==false)
    throw new AlunoNaoCadastrado(codigo);
else
    sistema.remove(codigo);
}

public void alteraAluno (String codigo, String nome, String telefone, String Email) 
throws alunoNaoCadastrado, RemoteException {
if (sistema.containsKey(codigo)==false)
    throw new AlunoNaoCadastrado(codigo);
else {
    sistema.remove(codigo);
    sistema.put(codigo, nome, telefone, Email);
}
}

}

jrsj

Não estou conseguindo fazer o cliente conversar com o servidor, também passar a referência do objeto aluno na hashtable do cliente, abaixo segue meu código para análise.

***************** Interface* ********************

package InterfaceAluno;

import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 *
 * @author SILVA JÚNIOR
 */
public interface RepAluno extends Remote {


	Alunoj incluiAluno(String codigo, String nome, String telefone, String email)
			throws AlunoJaCadastrado, RemoteException;

	Alunoj obtemAluno(String codigo) throws AlunoInexistente, RemoteException;

	Alunoj excluiAluno(String codigo) throws AlunoInexistente, RemoteException;

}




************** IMPLEMENTAÇÃO***********

package ImplementaRepAluno;

import java.rmi.RemoteException;
import java.util.Hashtable;

import InterfaceAluno.AlunoInexistente;
import InterfaceAluno.AlunoJaCadastrado;
import InterfaceAluno.Alunoj;
import InterfaceAluno.RepAluno;

public class RepAlunoImpl implements RepAluno {

	Hashtable aluno;

	public RepAlunoImpl() throws RemoteException {
		super();
		aluno = new Hashtable();
	}

	public void excluiAluno(String codigo) throws AlunoInexistente,
			RemoteException {

		if (aluno.containsKey(codigo) == false)
			throw new AlunoInexistente(codigo);
		else
			aluno.remove(codigo);
		// TODO Auto-generated method stub

	}

	public Alunoj incluiAluno(String codigo, String nome, String telefone,
			String email) throws AlunoJaCadastrado, RemoteException {
		if (aluno.containsKey(codigo))
			throw new AlunoJaCadastrado(nome);
		else
			// aluno.put(codigo, stub);
			return null;
	}

	public Alunoj obtemAluno(String codigo) throws AlunoInexistente,
			RemoteException {
		// TODO Auto-generated method stub
		return null;
	}

}

************************ SERVIDOR****************

package ServidorSistAcad;

import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;

import ImplementaRepAluno.RepAlunoImpl;
import InterfaceAluno.RepAluno;

public class ServidorRepAluno {

	public static void main(String[] args) {
		Registry registry = null;
		RepAlunoImpl repAlunoImpl = null;
		RepAluno repAluno = null;

		try {
			repAlunoImpl = new RepAlunoImpl();
			repAluno = (RepAlunoImpl) UnicastRemoteObject.exportObject(
					repAlunoImpl, 0);
			registry = LocateRegistry.getRegistry();
			registry.bind(" RepAluno", repAluno);
		} catch (Exception e) {
			try {
				registry = LocateRegistry.createRegistry(1099);
				registry.rebind("RepAluno", repAluno);
			} catch (RemoteException e1) {
				e1.printStackTrace();
			}
		}

************************* CLIENTE ************************

package InterfaceAluno;

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class Alunoj {

	public static void main(String[] args) {
		try {

			/*
			 * if (args.length != 1) { System.out.println("Uso: java
			 * ClienteBDCotacoes <hostname>"); return; }
			 */
			 //String ip = "localhost";
			//String servico = "RepAluno";
			Registry registry = LocateRegistry.getRegistry("localhost");
			RepAluno rep = (RepAluno) registry.lookup("RepAluno");

			Alunoj a = rep.incluiAluno("200", "JR", "88", "sdf@");
			System.out.print(a.get_nome());

		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	private Object get_nome() {
		return null;
	}

}

Aguardo comentários, obrigado!

Criado 18 de abril de 2008
Ultima resposta 21 de abr. de 2008
Respostas 8
Participantes 6