import java.util.*; public class LinkedHashMapTest extends LinkedHashMap { public LinkedHashMapTest(int initialCapacity, float loadFactor, boolean accessOrder) { super(initialCapacity, loadFactor, accessOrder); } public static void main(String[] args) { LinkedHashMap map = new LinkedHashMapTest(16, 0.75f, true); コメント("putのたびに、removeEldestEntryが呼ばれます。"); map.put("a", "Alpha"); map.put("b", "Bravo"); map.put("c", "Charlie"); map.put("d", "Delta"); map.put("e", "Echo"); コメント("putした順番で取得できます。"); System.out.println(map); コメント("アクセスオーダーをtrueにしたのでgetすると順番が変わります。"); System.out.println("get: " + map.get("c")); System.out.println(map); コメント("もう一度。getで順番が変わります。"); System.out.println("get: " + map.get("b")); System.out.println(map); コメント("removeEldestEntryがtrueを返すと、古いものから削除されていきます。"); map.put("f", "Foxtrot"); map.put("g", "Golf"); map.put("h", "Hotel"); System.out.println(map); } protected boolean removeEldestEntry(Map.Entry eldest) { boolean result = size() > 6; System.out.println("remove (" + eldest + ")?: " + result); return result; } private static void コメント(String msg) { System.out.println(""); System.out.println("-- " + msg); } }