/*
 * Copyright (C) 2018, Konrad Windszus <konrad_w@gmx.de> and others
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Distribution License v. 1.0 which is available at
 * https://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */
package org.eclipse.jgit.util;

import java.util.LinkedHashMap;

Map with only up to n entries. If a new entry is added so that the map contains more than those n entries the least-recently used entry is removed from the map.
Type parameters:
  • <K> – the type of keys maintained by this map
  • <V> – the type of mapped values
Since:5.4
/** * Map with only up to n entries. If a new entry is added so that the map * contains more than those n entries the least-recently used entry is removed * from the map. * * @param <K> * the type of keys maintained by this map * @param <V> * the type of mapped values * * @since 5.4 */
public class LRUMap<K, V> extends LinkedHashMap<K, V> { private static final long serialVersionUID = 4329609127403759486L; private final int limit;
Constructs an empty map which may contain at most the given amount of entries.
Params:
  • initialCapacity – the initial capacity
  • limit – the number of entries the map should have at most
/** * Constructs an empty map which may contain at most the given amount of * entries. * * @param initialCapacity * the initial capacity * @param limit * the number of entries the map should have at most */
public LRUMap(int initialCapacity, int limit) { super(initialCapacity, 0.75f, true); this.limit = limit; } @Override protected boolean removeEldestEntry(java.util.Map.Entry<K, V> eldest) { return size() > limit; } }