import java.util.LinkedHashSet;
/**
* {@link <a href=
* "https://[Log in to view URL]"
* target= "_blank">Primitive LinkedHashSet<E></a>}
*
* @author itammb ( Italia Massimiliano Buscati )
* @version JDK 1.15
*
*/
class Main {
public static class UniTestLinkedHashSet
{
private int initialCapacity, capacity, allocate, ri_allocate;
private float loadFactor;
public UniTestLinkedHashSet(int initialCapacity, int allocate, int ri_allocate) {
this.initialCapacity = capacity = initialCapacity;
this.allocate = allocate;
calculateLoadFactor();
this.ri_allocate = initialCapacity * ri_allocate;
}
public void simulateCapacity() {
LinkedHashSet<Integer> buffer = new LinkedHashSet<Integer>(initialCapacity, loadFactor);
printVar(initialCapacity, allocate, loadFactor, buffer.size() );
int element=0;
while(isEndSimulate())
{
while(isNotReAllocate(buffer.size()))
buffer.add(element++);
calculateReAllocate();
printVar(capacity, allocate, loadFactor, buffer.size());
}
}
private boolean isNotReAllocate(int element) {
return (element+1) < allocate;
}
private boolean isEndSimulate() {
return allocate < ri_allocate;
}
private void calculateLoadFactor() {
loadFactor = (float) allocate / (float) initialCapacity;
}
private void calculateReAllocate() {
capacity += initialCapacity;
allocate = (int)((float) capacity * loadFactor);
}
private void printVar(int initialCapacity, int reAllocate, float loadFactor, int size) {
System.out.println( "[capacity, re-allocate, load-factor, actual-size] = [" + initialCapacity + "," + reAllocate + "," + loadFactor + "," + size + "]");
}
}
public static void main(String args[]) throws Exception {
// Unit test - simula la riallocazione della struttura
new UniTestLinkedHashSet(16, 12, 3).simulateCapacity();
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: