Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package nl.hva.ict.ds.util;
- import java.util.ArrayList;
- import nl.hva.ict.ds.Player;
- import java.util.List;
- public class QuadraticProbingMultiValueSymbolTable implements MultiValueSymbolTable<String, Player> {
- private Player[] players;
- public QuadraticProbingMultiValueSymbolTable(int arraySize) {
- players = new Player[arraySize];
- }
- @Override
- public void put(String key, Player value) {
- int keyValue = 0;
- int quadraticValue = 0;
- int quadraticCounter = 0;
- for (int i = 0; i < key.length(); i++) {
- int index = key.charAt(i);
- keyValue += index;
- }
- int keyCalc = (players.length % keyValue) - 1;
- if (players[keyCalc] == null) {
- players[keyCalc] = value;
- } else {
- do {
- quadraticCounter++;
- quadraticValue = this.calculateQuadratic(quadraticCounter);
- keyCalc += quadraticValue;
- if(keyCalc >= players.length) {
- int calcReduction = (int) Math.floor(keyCalc / players.length);
- keyCalc -= (calcReduction * players.length);
- } else {
- if(players[keyCalc] == null) {
- players[keyCalc] = value;
- System.out.println("Player added: " + players[keyCalc].getFirstName() + " " + players[keyCalc].getLastName());
- }
- }
- } while (players[keyCalc] != null);
- }
- }
- @Override
- public List<Player> get(String key) {
- List<Player> foundPlayers = new ArrayList<>();
- for (int i = 0; i < players.length; i++) {
- if(players[i] != null) {
- System.out.println(players[i].getLastName());
- }
- // if(players[i].getLastName().equals(key)) {
- // foundPlayers.add(players[i]);
- // }
- }
- return foundPlayers;
- }
- public int calculateQuadratic(int key) {
- int quadraticValue = (int) (2 + Math.pow(key, 2));
- return quadraticValue;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement