📄 hashtable.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 + -