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();
	}	
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: