コード例 #1
0
  private static void runUnifiedSetRemoveAll(int shift) {
    MultiReaderUnifiedSet<CollidingInt> set = MultiReaderUnifiedSet.newSet();

    List<CollidingInt> toRemove = new ArrayList<CollidingInt>();

    int size = 100000;
    for (int i = 0; i < size; i++) {
      set.add(new CollidingInt(i, shift));
      if (i % 2 == 0) {
        toRemove.add(new CollidingInt(i, shift));
      }
    }
    Verify.assertSize(size, set);

    Assert.assertTrue(set.removeAll(toRemove));

    Assert.assertFalse(set.removeAll(toRemove)); // a second call should not modify the set

    Verify.assertSize(size / 2, set);

    for (int i = 1; i < size; i += 2) {
      Verify.assertContains(new CollidingInt(i, shift), set);
    }
  }