HashTable.java
package ch.hslu.exercises.sw04.ex1;
import java.util.Arrays;
public final class HashTable implements Table<Integer> {
private final Integer[] data;
private int size = 0;
public HashTable(final int size) {
data = new Integer[size];
}
@Override
public boolean add(final Integer element) {
if (element != null) {
data[getIndexFromHashCode(element.hashCode())] = element;
size++;
return true;
} else {
return false;
}
}
@Override
public boolean remove(final Integer element) {
if (element != null) {
Integer possibleElement = data[getIndexFromHashCode(element.hashCode())];
if (element.equals(possibleElement)) {
data[getIndexFromHashCode(element.hashCode())] = null;
size--;
return true;
}
}
return false;
}
@Override
public boolean contains(final Integer element) {
if (element != null) {
Integer possibleElement = data[getIndexFromHashCode(element.hashCode())];
return element.equals(possibleElement);
}
return false;
}
@Override
public int size() {
return size;
}
private int getIndexFromHashCode(final int hashCode) {
return hashCode % data.length;
}
@Override
public String toString() {
return "HashTable{"
+ "data=" + Arrays.toString(data)
+ ", size=" + size
+ '}';
}
}