Skip to content
Snippets Groups Projects
Select Git revision
  • 3d5dba551d6f8a5dbc82f710564d77a30e33522c
  • master default
  • signal-final
  • multiple-ports-final
  • pipeline-with-method-call-final
5 results

ArrayPool.java

Blame
  • user avatar
    Christian Wulf authored
    3d5dba55
    History
    ArrayPool.java 518 B
    package teetime.util.list;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class ArrayPool<T> {
    
    	// BETTER use a map with int as key due to performance
    	private final Map<Integer, T[]> cache = new HashMap<Integer, T[]>();
    
    	@SuppressWarnings("unchecked")
    	public T[] acquire(final int capacity) {
    		T[] array = this.cache.get(capacity);
    		if (array == null) {
    			array = (T[]) new Object[capacity];
    		}
    		return array;
    	}
    
    	public void release(final T[] array) {
    		this.cache.put(array.length, array);
    	}
    
    }