/** * Get a view of the index as a set. * @return The set of keys. */ public LongSortedArraySet keySet() { return new LongSortedArraySet(this); }
@SuppressWarnings("unchecked") private LongSortedArraySet emptySet() { return new LongSortedArraySet(Collections.EMPTY_LIST); }
@Override public LongSortedSet subSet(long startKey, long endKey) { int start = keys.findLowerBound(startKey); int end = keys.findLowerBound(endKey); return new LongSortedArraySet(keys.subIndex(start, end)); }
@Override public LongSortedSet tailSet(long key) { int start = keys.findLowerBound(key); int end = keys.getUpperBound(); return new LongSortedArraySet(keys.subIndex(start, end)); }
@Override public LongSortedSet headSet(long key) { int start = keys.getLowerBound(); int end = keys.findLowerBound(key); return new LongSortedArraySet(keys.subIndex(start, end)); }
@Test public void testRemoveDuplicates() { long[] data = {5, 2, 6, 2}; LongSortedSet set = new LongSortedArraySet(data); testSetSimple(set); }
@Test public void testArrayCtorUnsorted() { long[] data = {5, 2, 6}; LongSortedSet set = new LongSortedArraySet(data); testSetSimple(set); }
@Test public void testCollectionCtor() { long[] data = {5, 2, 6}; LongSortedSet set = new LongSortedArraySet(new LongArrayList(data)); testSetSimple(set); }
/** * Get a view of the index as a set. * @return The set of keys. */ public LongSortedArraySet keySet() { return new LongSortedArraySet(this); }
@Test public void testTailSet() { long[] data = {0, 5, 2, 6, 1}; LongSortedSet set = new LongSortedArraySet(data); assertEquals(data.length, set.size()); testSetSimple(set.tailSet(2)); }
@Test public void testHeadSet() { long[] data = {7, 5, 2, 6, 42}; LongSortedSet set = new LongSortedArraySet(data); assertEquals(data.length, set.size()); testSetSimple(set.headSet(7)); }
@Test public void testSubSet() { long[] data = {0, 42, 5, 2, 6, 1, 7}; LongSortedSet set = new LongSortedArraySet(data); assertEquals(data.length, set.size()); testSetSimple(set.subSet(2, 7)); }
@Test public void testArrayCtor() { LongSortedSet set = new LongSortedArraySet(new long[]{2, 5, 6}); testSetSimple(set); LongBidirectionalIterator iter = set.iterator(); assertTrue(iter.hasNext()); assertEquals(2, iter.nextLong()); assertTrue(iter.hasPrevious()); assertEquals(2, iter.previousLong()); assertFalse(iter.hasPrevious()); }
@Override public LongSortedSet subSet(long startKey, long endKey) { int start = keys.findLowerBound(startKey); int end = keys.findLowerBound(endKey); return new LongSortedArraySet(keys.subIndex(start, end)); }
@Override public LongSortedSet headSet(long key) { int start = keys.getLowerBound(); int end = keys.findLowerBound(key); return new LongSortedArraySet(keys.subIndex(start, end)); }
@Override public LongSortedSet tailSet(long key) { int start = keys.findLowerBound(key); int end = keys.getUpperBound(); return new LongSortedArraySet(keys.subIndex(start, end)); }
@Test public void testTailIter() { long[] data = {0, 42, 5, 2, 6, 1, 7}; LongSortedSet set = new LongSortedArraySet(data); LongBidirectionalIterator iter = set.iterator(2); assertTrue(iter.hasNext()); assertTrue(iter.hasPrevious()); assertEquals(5, iter.nextLong()); iter = set.iterator(2); assertEquals(2, iter.previousLong()); iter = set.iterator(-5); assertFalse(iter.hasPrevious()); iter = set.iterator(100); assertFalse(iter.hasNext()); iter = set.iterator(3); assertEquals(5, iter.nextLong()); iter = set.iterator(3); assertEquals(2, iter.previousLong()); }