下面列出了java.util.NavigableSet# iterator ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
void mutateSet(NavigableSet<Integer> set, int min, int max, BitSet bs) {
int size = set.size();
int rangeSize = max - min + 1;
// Remove a bunch of entries directly
for (int i = 0, n = rangeSize / 2; i < n; i++) {
remove(set, min - 5 + rnd.nextInt(rangeSize + 10), bs);
}
// Remove a bunch of entries with iterator
for (Iterator<Integer> it = set.iterator(); it.hasNext(); ) {
if (rnd.nextBoolean()) {
bs.clear(it.next());
it.remove();
}
}
// Add entries till we're back to original size
while (set.size() < size) {
int element = min + rnd.nextInt(rangeSize);
assertTrue(element >= min && element <= max);
put(set, element, bs);
}
}
private static void demoNavigableSetIterRemove(NavigableSet<Integer> set) {
System.out.println("set: " + set);
try {
Iterator iter = set.iterator();
while (iter.hasNext()) {
Integer e = (Integer) iter.next();
System.out.println(e);
if (e == 2) {
System.out.println("Calling iter.remove()...");
iter.remove();
}
}
} catch (Exception ex) {
System.out.println(ex.getClass().getName());
}
System.out.println("set: " + set);
}
void mutateSet(NavigableSet<Integer> set, int min, int max, BitSet bs) {
int size = set.size();
int rangeSize = max - min + 1;
// Remove a bunch of entries directly
for (int i = 0, n = rangeSize / 2; i < n; i++) {
remove(set, min - 5 + rnd.nextInt(rangeSize + 10), bs);
}
// Remove a bunch of entries with iterator
for (Iterator<Integer> it = set.iterator(); it.hasNext(); ) {
if (rnd.nextBoolean()) {
int val = it.next();
bs.clear(val);
it.remove();
}
}
// Add entries till we're back to original size
while (set.size() < size) {
int element = min + rnd.nextInt(rangeSize);
assertTrue(element >= min && element<= max);
put(set, element, bs);
}
}
/**
* iterator.remove removes current element
*/
public void testDescendingIteratorRemove() {
final NavigableSet q = dset0();
q.add(new Integer(2));
q.add(new Integer(1));
q.add(new Integer(3));
Iterator it = q.iterator();
it.next();
it.remove();
it = q.iterator();
assertEquals(it.next(), new Integer(2));
assertEquals(it.next(), new Integer(3));
assertFalse(it.hasNext());
}
/**
* iterator.remove removes current element
*/
public void testDescendingIteratorRemove() {
final NavigableSet q = dset0();
q.add(new Integer(2));
q.add(new Integer(1));
q.add(new Integer(3));
Iterator it = q.iterator();
it.next();
it.remove();
it = q.iterator();
assertEquals(2, it.next());
assertEquals(3, it.next());
assertFalse(it.hasNext());
}
/**
* iterator.remove removes current element
*/
public void testIteratorRemove() {
final NavigableSet q = set0();
q.add(new Integer(2));
q.add(new Integer(1));
q.add(new Integer(3));
Iterator it = q.iterator();
it.next();
it.remove();
it = q.iterator();
assertEquals(2, it.next());
assertEquals(3, it.next());
assertFalse(it.hasNext());
}
/**
* Tests that the iterator is empty.
*/
@Test(dataProvider = "NavigableSet<?>", dataProviderClass = EmptyNavigableSet.class)
public void testEmptyIterator(String description, NavigableSet<?> navigableSet) {
Iterator emptyIterator = navigableSet.iterator();
assertFalse((emptyIterator != null) && (emptyIterator.hasNext()),
"The iterator is not empty.");
}
void mutateSubSet(NavigableSet<Integer> set, int min, int max,
BitSet bs) {
int size = set.size();
int rangeSize = max - min + 1;
// Remove a bunch of entries directly
for (int i = 0, n = rangeSize / 2; i < n; i++) {
remove(set, min - 5 + rnd.nextInt(rangeSize + 10), bs);
}
// Remove a bunch of entries with iterator
for (Iterator<Integer> it = set.iterator(); it.hasNext(); ) {
if (rnd.nextBoolean()) {
bs.clear(it.next());
it.remove();
}
}
// Add entries till we're back to original size
while (set.size() < size) {
int element = min - 5 + rnd.nextInt(rangeSize + 10);
if (element >= min && element <= max) {
put(set, element, bs);
} else {
try {
set.add(element);
shouldThrow();
} catch (IllegalArgumentException success) {}
}
}
}
/**
* iterator of empty set has no elements
*/
public void testDescendingEmptyIterator() {
NavigableSet q = dset0();
int i = 0;
Iterator it = q.iterator();
while (it.hasNext()) {
assertTrue(q.contains(it.next()));
++i;
}
assertEquals(0, i);
}
/**
* Tests that the iterator is empty.
*/
@Test(dataProvider = "NavigableSet<?>", dataProviderClass = EmptyNavigableSet.class)
public void testEmptyIterator(String description, NavigableSet<?> navigableSet) {
Iterator emptyIterator = navigableSet.iterator();
assertFalse((emptyIterator != null) && (emptyIterator.hasNext()),
"The iterator is not empty.");
}
/**
* Tests that the iterator is empty.
*/
@Test(dataProvider = "NavigableSet<?>", dataProviderClass = EmptyNavigableSet.class)
public void testEmptyIterator(String description, NavigableSet<?> navigableSet) {
Iterator emptyIterator = navigableSet.iterator();
assertFalse((emptyIterator != null) && (emptyIterator.hasNext()),
"The iterator is not empty.");
}
/**
* iterator of empty set has no elements
*/
public void testDescendingEmptyIterator() {
NavigableSet q = dset0();
int i = 0;
Iterator it = q.iterator();
while (it.hasNext()) {
assertTrue(q.contains(it.next()));
++i;
}
assertEquals(0, i);
}
/**
* iterator of empty set has no elements
*/
public void testDescendingEmptyIterator() {
NavigableSet q = dset0();
int i = 0;
Iterator it = q.iterator();
while (it.hasNext()) {
assertTrue(q.contains(it.next()));
++i;
}
assertEquals(0, i);
}
/**
* Tests that the iterator is empty.
*/
@Test(dataProvider = "NavigableSet<?>", dataProviderClass = EmptyNavigableSet.class)
public void testEmptyIterator(String description, NavigableSet<?> navigableSet) {
Iterator emptyIterator = navigableSet.iterator();
assertFalse((emptyIterator != null) && (emptyIterator.hasNext()),
"The iterator is not empty.");
}
/**
* iterator of empty set has no elements
*/
public void testDescendingEmptyIterator() {
NavigableSet q = dset0();
int i = 0;
Iterator it = q.iterator();
while (it.hasNext()) {
assertTrue(q.contains(it.next()));
++i;
}
assertEquals(0, i);
}
/**
* iterator iterates through all elements
*/
public void testIterator() {
NavigableSet q = populatedSet(SIZE);
int i = 0;
Iterator it = q.iterator();
while (it.hasNext()) {
assertTrue(q.contains(it.next()));
++i;
}
assertEquals(i, SIZE);
}
/**
* iterator iterates through all elements
*/
public void testDescendingIterator() {
NavigableSet q = populatedSet(SIZE);
int i = 0;
Iterator it = q.iterator();
while (it.hasNext()) {
assertTrue(q.contains(it.next()));
++i;
}
assertEquals(i, SIZE);
}
/**
* iterator iterates through all elements
*/
public void testIterator() {
NavigableSet q = populatedSet(SIZE);
int i = 0;
Iterator it = q.iterator();
while (it.hasNext()) {
assertTrue(q.contains(it.next()));
++i;
}
assertEquals(i, SIZE);
}
/**
* iterator iterates through all elements
*/
public void testDescendingIterator() {
NavigableSet q = populatedSet(SIZE);
int i = 0;
Iterator it = q.iterator();
while (it.hasNext()) {
assertTrue(q.contains(it.next()));
++i;
}
assertEquals(i, SIZE);
}
/**
* Tests that the iterator is empty.
*/
@Test(dataProvider = "NavigableSet<?>", dataProviderClass = EmptyNavigableSet.class)
public void testEmptyIterator(String description, NavigableSet<?> navigableSet) {
Iterator emptyIterator = navigableSet.iterator();
assertFalse((emptyIterator != null) && (emptyIterator.hasNext()),
"The iterator is not empty.");
}