コード例 #1
0
 @Test
 public void keySet() {
   final IntLinkedHashMap<String> tested = new IntLinkedHashMap<>();
   for (int i = 0; i < 10000; ++i) {
     tested.put(i, Integer.toString(i));
   }
   int i = 10000;
   for (Integer key : tested.keySet()) {
     Assert.assertEquals(--i, key.intValue());
   }
 }
コード例 #2
0
  @Test
  public void keySet2() {
    final IntLinkedHashMap<String> tested = new IntLinkedHashMap<>();
    for (int i = 0; i < 10000; ++i) {
      tested.put(i, Integer.toString(i));
    }
    Iterator<Integer> it = tested.keySet().iterator();
    while (it.hasNext()) {
      final int i = it.next();
      if (i % 2 == 0) {
        it.remove();
      }
    }

    Assert.assertEquals(5000, tested.size());

    it = tested.keySet().iterator();
    for (int i = 9999; i > 0; i -= 2) {
      Assert.assertTrue(it.hasNext());
      Assert.assertEquals(i, it.next().intValue());
    }
  }
コード例 #3
0
 @Test
 public void lru3() {
   final IntLinkedHashMap<String> tested =
       new IntLinkedHashMap<String>() {
         @Override
         protected boolean removeEldestEntry(Map.Entry<Integer, String> eldest) {
           return size() > 1000;
         }
       };
   for (int i = 0; i < 1000; ++i) {
     tested.put(i, Integer.toString(i));
   }
   Assert.assertEquals(Integer.toString(999), tested.remove(999));
   Assert.assertEquals(999, tested.size());
   Assert.assertEquals(Integer.toString(0), tested.get(0));
   for (int i = 1000; i < 1999; ++i) {
     tested.put(i, Integer.toString(i));
   }
   Assert.assertEquals(Integer.toString(0), tested.get(0));
   tested.put(2000, Integer.toString(2000));
   Assert.assertNull(tested.get(1000));
 }
コード例 #4
0
 @Test
 public void forEachProcedure() {
   final IntLinkedHashMap<String> tested = new IntLinkedHashMap<>();
   for (int i = 0; i < 100000; ++i) {
     tested.put(i, Integer.toString(i));
   }
   final int[] ii = {0};
   tested.forEachKey(
       new ObjectProcedure<Integer>() {
         @Override
         public boolean execute(Integer object) {
           ii[0]++;
           return true;
         }
       });
   tested.forEachValue(
       new ObjectProcedure<String>() {
         @Override
         public boolean execute(String object) {
           ii[0]++;
           return true;
         }
       });
   Assert.assertEquals(tested.size() * 2, ii[0]);
   ii[0] = 0;
   tested.forEachKey(
       new ObjectProcedure<Integer>() {
         @Override
         public boolean execute(Integer object) {
           ii[0]++;
           return object > 99500;
         }
       });
   tested.forEachValue(
       new ObjectProcedure<String>() {
         @Override
         public boolean execute(String object) {
           ii[0]++;
           return true;
         }
       });
   Assert.assertEquals(tested.size() + 500, ii[0]);
 }
コード例 #5
0
 @Test
 public void testPutGet2() {
   final IntLinkedHashMap<String> tested = new IntLinkedHashMap<>();
   for (int i = 0; i < 1000; ++i) {
     tested.put(i - 500, Integer.toString(i));
   }
   Assert.assertEquals(1000, tested.size());
   for (int i = 0; i < 1000; ++i) {
     Assert.assertEquals(Integer.toString(i), tested.get(i - 500));
   }
   for (int i = 0; i < 1000; ++i) {
     Assert.assertEquals(Integer.toString(i), tested.put(i - 500, Integer.toString(i + 1)));
   }
   Assert.assertEquals(1000, tested.size());
   for (int i = 0; i < 1000; ++i) {
     Assert.assertEquals(Integer.toString(i + 1), tested.get(i - 500));
   }
 }
コード例 #6
0
 @Test
 public void testPutGetRemove() {
   final IntLinkedHashMap<String> tested = new IntLinkedHashMap<>();
   for (int i = 0; i < 1000; ++i) {
     tested.put(i, Integer.toString(i));
   }
   Assert.assertEquals(1000, tested.size());
   for (int i = 0; i < 1000; i += 2) {
     Assert.assertEquals(Integer.toString(i), tested.remove(i));
   }
   Assert.assertEquals(500, tested.size());
   for (int i = 0; i < 1000; ++i) {
     Assert.assertEquals((i % 2 == 0) ? null : Integer.toString(i), tested.get(i));
   }
 }
コード例 #7
0
 @Test
 public void lru() {
   final IntLinkedHashMap<String> tested =
       new IntLinkedHashMap<String>() {
         @Override
         protected boolean removeEldestEntry(Map.Entry<Integer, String> eldest) {
           return size() > 500;
         }
       };
   for (int i = 0; i < 1000; ++i) {
     tested.put(i, Integer.toString(i));
   }
   Assert.assertEquals(500, tested.size());
   for (int i = 0; i < 500; ++i) {
     Assert.assertNull(tested.remove(i));
   }
   Assert.assertEquals(500, tested.size());
   for (int i = 500; i < 1000; ++i) {
     Assert.assertEquals(Integer.toString(i), tested.remove(i));
   }
   Assert.assertEquals(0, tested.size());
 }