⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hashtable.java

📁 Program that uses a doc as database, and allows modifications at theses doc s
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package laforehash;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;/** * * @author Usuario */class HashTable {public int aKey;private  SortedList[] hashArray; // array of listsprivate int arraySize;// ------------------------------------------------------------public HashTable(int size) // constructor{arraySize = size;hashArray = new SortedList[arraySize]; // create arrayfor(int j=0; j<arraySize; j++) // fill arrayhashArray[j] = new SortedList(); // with lists}// ------------------------------------------------------------public void displayTable(){    for(int j=1; j<arraySize; j++) // for each cell,    {        System.out.print(j + ". Candidatos a: "+ hashNum(j)); // display cell number        hashArray[j].displayList(); // display list    }}// ------------------------------------------------------------public void displayCargo(Empresa empresa, SortedList listavagas) throws IOException{        System.out.println("Digite o cargo :");    String aux= getString();     Vagas vagas = listavagas.findVagas(aux,empresa.getId());    if(vagas == null)           System.out.println("A empresa nao solicitou essa formacao");    else if (hashArray[hashForm(aux)].isEmpty())    {        if(vagas.getGraduacao().equalsIgnoreCase("mestrado"))                                hashArray[hashForm(aux)].displayList("mestrado");                else if(vagas.getGraduacao().equalsIgnoreCase("doutorado"))                       hashArray[hashForm(aux)].displayList("doutorado");                 else if(vagas.getGraduacao().equalsIgnoreCase("nenhum"))            hashArray[hashForm(aux)].displayListEsp();    }    else    System.out.println("Não existem candidatos");}// ------------------------------------------------------------// insert a linkpublic void insert (SortedList listaempresas, SortedList listavagas) throws IOException, NumberFormatException{    System.out.println("Adicionar: ");    System.out.println("1 - Empresa: ");    System.out.println("2 - Candidato: ");    System.out.println("3 - Solicitacao: \n");    int escolha = getInt();    if(escolha == 1)        insertEmpresa(listaempresas);    else if (escolha == 2)        insertCandidato();    else if (escolha == 3)        insertVagas(listavagas);    else        System.out.println("Escolha invalida");}public void insertCandidato() throws IOException, NumberFormatException // insert a link{       Candidato theLink = new Candidato();    System.out.println("Adicionar novo candidato: ");    System.out.println("\nNome:");      String name=getString();    System.out.println("Formacao:");    String formacao= getString();    System.out.println("Status: ");    String status = getString();    System.out.println("Nivel de Graduacao: ");    String graduacao = getString();    System.out.println("CPF: ");    String cpf = getString();    System.out.println("Id:");    int id = getInt();    theLink.setCpf(cpf);    theLink.setNome(name);    theLink.setFormacao(formacao);    theLink.setGraduacao(graduacao);    theLink.setStatus(status);    theLink.setId(id);        int chave =hashForm(theLink.getFormacao());       hashArray[chave].insertList(theLink); // insert at hashVal} // end insert()public void insertVagas(SortedList listavagas) throws IOException, NumberFormatException // insert a link{       Vagas vagas = new Vagas();    System.out.println("Digite a id da empresa: ");         int id=getInt();    System.out.println("Formacao requerida do candidato: ");    String formacao= getString();    System.out.println("Nivel de Graduacao: ");    String graduacao = getString();    System.out.println("Quantidade de vagas: ");    int quantidade = getInt();        vagas.setQuantidade(quantidade);       vagas.setFormacao(formacao);    vagas.setGraduacao(graduacao);       vagas.setId(id);         listavagas.insertList(vagas);} // end insertVagas()public void insertEmpresa(SortedList listaempresas) throws IOException, NumberFormatException // insert a link{       Empresa empresa = new Empresa();    System.out.println("Digite a id da empresa: ");         int id = getInt();    System.out.println("Nome da empresa: ");    String nome= getString();    System.out.println("Telefone de contato: ");    String tel = getString();           empresa.setNome(nome);       empresa.setTel(tel);        empresa.setId(id);          listaempresas.insertList(empresa);} // end insert()public void aux (Candidato theLink) throws NullPointerException{    int chave =hashForm(theLink.getFormacao());         hashArray[chave].insertList(theLink); // insert at hashVal}// delete a linkpublic void delete() throws IOException // delete a link{    try    {    System.out.println("Digite o curso do candidato que deseja deletar: ");    String aux= getString();    System.out.println("\nDigite a id do candidato: ");    int aux2= getInt();         if(hashArray[hashForm(aux)].deleteList(aux2)) // delete link        System.out.println("CANDIDATO DELETADO");    }    catch (NullPointerException e)    {        System.out.println("CANDIDATO NAO ENCONTRADO");    }    catch (NumberFormatException e)    {        System.out.println("DIGITE UM INTEIRO");    }} // end delete()public void find(SortedList listavagas, SortedList listaempresas) throws IOException // find link{        System.out.println("\nDigite a formacao do candidato que deseja encontrar: ");    String formacao = getString();    System.out.println("Digite a Id do candidato: ");    aKey = getInt();    System.out.println("Digite a Id da empresa: ");    int Key = getInt();      Empresa empresa = (Empresa)listaempresas.find(Key);    Candidato theLink = (Candidato) hashArray[hashForm(formacao)].find(aKey); // get link    if(theLink != null){    System.out.println("Encontrado: ");    theLink.displayLink();        System.out.println("\nDeseja alterar o status do candidato "+ theLink.getNome());        System.out.println("Sim ou Nao: ");        String aux = getString();        if(aux.equalsIgnoreCase("sim"))        {                                  if(theLink.getStatus().equals("colocado"))            {                theLink.setStatus("livre");                System.out.println("Candidato: " + theLink.getNome());                System.out.println("Foi despedido da empresa: "+ empresa.getNome());                System.out.println("Status alterado para livre");            }            else if(theLink.getStatus().equals("Livre"))            {                try {                Vagas vagas = listavagas.findVagas(formacao,Key);                  if(vagas.getGraduacao().equalsIgnoreCase(theLink.getGraduacao())){                    int quant = vagas.getQuantidade();                    quant--;                                    vagas.setQuantidade(quant);                                     theLink.setStatus("Colocado");                    System.out.println("Candidato: " + theLink.getNome());                    System.out.println("Foi enviado para a empresa: "+ empresa.getNome());                    System.out.println("Status alterado para colocado");                  }                else                        System.out.println("Graduacao do candidato nao preenche requisitos da empresa");}                catch (NullPointerException e){                    System.out.println("Empresa não solicitou essa formacao");                }            }                        }        else            System.out.println("Estado do candidato nao foi alterado");    }    else    System.out.println("Nao encontrado ");   }// ------------------------------------------------------------public static int hashForm(String formacao) throws NullPointerException // hash function{    if (formacao.equalsIgnoreCase("engenheiro civil"))            return 1;        else if (formacao.equalsIgnoreCase("engenheiro de computacao"))        return 2;    else if (formacao.equalsIgnoreCase("medicina"))        return 3;    else if (formacao.equalsIgnoreCase("mecanico"))        return 4;    else if (formacao.equalsIgnoreCase("pedreiro"))        return 5;    else if (formacao.equalsIgnoreCase("padeiro"))        return 6;    else if (formacao.equalsIgnoreCase("cozinheiro"))        return 7;    else if (formacao.equalsIgnoreCase("faxineiro"))        return 8;    else if (formacao.equalsIgnoreCase("professor"))        return 9;        else return 0;}public static String hashNum(int num) throws NullPointerException // hash function{    if (num == 1)           return "engenheiro civil";        else if (num == 2)        return "engenheiro de computacao";    else if (num == 3)        return "medicina";    else if (num == 4)        return "mecanico";    else if (num == 5)        return "pedreiro";    else if (num == 6)        return "padeiro";    else if (num == 7)        return "cozinheiro";    else if (num == 8)        return "faxineiro";    else if (num == 9)        return "professor";        else return "diversas profissoes";}public static void solicitacao(HashTable theHashTable,SortedList listavagas, SortedList listaempresas ) throws IOException{    System.out.println("\n\nDeseja atender a solicitacao de alguma empresa? S/N ");        String aux = getString();        if(aux.equalsIgnoreCase("s"))        {            System.out.println("Digite a id da empresa: ");            int idemp = getInt();            listavagas.displayVagas(idemp);            Empresa empresa = (Empresa)listaempresas.find(idemp);            theHashTable.displayCargo(empresa,listavagas);                   }      }public static String getString() throws IOException{InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(isr);String s = br.readLine();return s;}//-------------------------------------------------------------public static char getChar() throws IOException{String s = getString();return s.charAt(0);}//-------------------------------------------------------------public static int getInt() throws IOException{String s = getString();return Integer.parseInt(s);}} // end class HashTable

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -