Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. package nl.hva.ict.ds.util;
  2.  
  3. import java.util.ArrayList;
  4. import nl.hva.ict.ds.Player;
  5.  
  6. import java.util.List;
  7.  
  8. public class QuadraticProbingMultiValueSymbolTable implements MultiValueSymbolTable<String, Player> {
  9.  
  10. private Player[] players;
  11.  
  12. public QuadraticProbingMultiValueSymbolTable(int arraySize) {
  13. players = new Player[arraySize];
  14. }
  15.  
  16. @Override
  17. public void put(String key, Player value) {
  18. int keyValue = 0;
  19. int quadraticValue = 0;
  20. int quadraticCounter = 0;
  21.  
  22. for (int i = 0; i < key.length(); i++) {
  23. int index = key.charAt(i);
  24. keyValue += index;
  25. }
  26.  
  27. int keyCalc = (players.length % keyValue) - 1;
  28.  
  29. if (players[keyCalc] == null) {
  30. players[keyCalc] = value;
  31. } else {
  32.  
  33. do {
  34. quadraticCounter++;
  35. quadraticValue = this.calculateQuadratic(quadraticCounter);
  36. keyCalc += quadraticValue;
  37. if(keyCalc >= players.length) {
  38. int calcReduction = (int) Math.floor(keyCalc / players.length);
  39. keyCalc -= (calcReduction * players.length);
  40. } else {
  41. if(players[keyCalc] == null) {
  42. players[keyCalc] = value;
  43. System.out.println("Player added: " + players[keyCalc].getFirstName() + " " + players[keyCalc].getLastName());
  44. }
  45. }
  46. } while (players[keyCalc] != null);
  47. }
  48. }
  49.  
  50. @Override
  51. public List<Player> get(String key) {
  52. List<Player> foundPlayers = new ArrayList<>();
  53. for (int i = 0; i < players.length; i++) {
  54. if(players[i] != null) {
  55. System.out.println(players[i].getLastName());
  56. }
  57. // if(players[i].getLastName().equals(key)) {
  58. // foundPlayers.add(players[i]);
  59. // }
  60. }
  61. return foundPlayers;
  62. }
  63.  
  64. public int calculateQuadratic(int key) {
  65. int quadraticValue = (int) (2 + Math.pow(key, 2));
  66. return quadraticValue;
  67. }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement