public static void main(String[] args) { ConcurrentLinkedHashMap<String, String> map = new ConcurrentLinkedHashMap<String, String>(true, 33, listener); System.out.println( map.getConcurrencyLevel() + "|" + map.getSegmentMask() + "|" + map.getSegmentShift()); for (int i = 0; i < 100; i++) { map.put("key" + i, "v" + i); } System.out.println(map.toString()); for (int i = 0; i < 100; i++) { System.out.println(map.get("key" + i)); } System.out.println(map.get("key97")); System.out.println(map.get("key97")); System.out.println(map.get("key97")); System.out.println(map.get("key97")); System.out.println(map.get("key97")); }
@Test public void testLeastRecentlyUsed() { ConcurrentLinkedHashMap<String, String> map = new ConcurrentLinkedHashMap<String, String>(true, 33, listener); System.out.println( map.getConcurrencyLevel() + "|" + map.getSegmentMask() + "|" + map.getSegmentShift()); for (int i = 0; i < 100; i++) { if (i > 75) map.get("75"); map.put("" + i, "v" + i); } Assert.assertThat(map.get("75"), is("v75")); }
@Test public void testMaxEntries() { ConcurrentLinkedHashMap<String, String> map = new ConcurrentLinkedHashMap<String, String>(true, 33, listener); System.out.println( map.getConcurrencyLevel() + "|" + map.getSegmentMask() + "|" + map.getSegmentShift()); for (int i = 0; i < 100; i++) { map.put("" + i, "v" + i); } System.out.println(map.size()); Assert.assertThat(map.size(), is(32)); }
@Test public void testConcurrentLevel() { ConcurrentLinkedHashMap<String, String> map = new ConcurrentLinkedHashMap<String, String>(true, 200, listener, 200); Assert.assertThat(map.getConcurrencyLevel(), is(256)); }