@Override public TreeSet<T> takeRight(int n) { if (n <= 0) { return empty(tree.comparator()); } else if (n >= length()) { return this; } else { return TreeSet.ofAll(tree.comparator(), iterator().takeRight(n)); } }
@Override public TreeSet<T> take(int n) { if (n <= 0) { return empty(tree.comparator()); } else if (n >= length()) { return this; } else { return TreeSet.ofAll(tree.comparator(), iterator().take(n)); } }
@Override public TreeSet<T> dropRight(int n) { if (n <= 0 || isEmpty()) { return this; } else if (n >= length()) { return empty(tree.comparator()); } else { return TreeSet.ofAll(tree.comparator(), iterator().dropRight(n)); } }
@Override public TreeSet<T> drop(int n) { if (n <= 0 || isEmpty()) { return this; } else if (n >= length()) { return empty(tree.comparator()); } else { return TreeSet.ofAll(tree.comparator(), iterator().drop(n)); } }
@Override public TreeSet<T> take(int n) { if (n <= 0) { return empty(tree.comparator()); } else if (n >= length()) { return this; } else { return TreeSet.ofAll(tree.comparator(), iterator().take(n)); } }
@Override public TreeSet<T> takeRight(int n) { if (n <= 0) { return empty(tree.comparator()); } else if (n >= length()) { return this; } else { return TreeSet.ofAll(tree.comparator(), iterator().takeRight(n)); } }
@Override public TreeSet<T> dropRight(int n) { if (n <= 0 || isEmpty()) { return this; } else if (n >= length()) { return empty(tree.comparator()); } else { return TreeSet.ofAll(tree.comparator(), iterator().dropRight(n)); } }
@Override public TreeSet<T> drop(int n) { if (n <= 0 || isEmpty()) { return this; } else if (n >= length()) { return empty(tree.comparator()); } else { return TreeSet.ofAll(tree.comparator(), iterator().drop(n)); } }
@Test public void testTreeSet() throws Exception { TreeSet<I> src = TreeSet.of(new B()); String json = MAPPER.writeValueAsString(new TreeSetPojo().setValue(src)); Assert.assertEquals(json, "{\"value\":[{\"type\":\"b\"}]}"); TreeSetPojo pojo = MAPPER.readValue(json, TreeSetPojo.class); TreeSet<I> restored = pojo.getValue(); Assert.assertEquals(restored.filter(e -> e instanceof B).length(), 1); }
@Test public void testTreeSet() throws Exception { TreeSet<A> src = TreeSet.of(new B("a", "b")); String json = MAPPER.writeValueAsString(new TreeSetPojo().setValue(src)); Assert.assertEquals(json, "{\"value\":[{\"ExtFieldsPojoTest$B\":{\"a\":\"a\",\"b\":\"b\"}}]}"); TreeSetPojo pojo = MAPPER.readValue(json, TreeSetPojo.class); TreeSet<A> restored = pojo.getValue(); Assert.assertEquals(restored.filter(e -> e instanceof B).length(), 1); Assert.assertEquals(restored.head().a, "a"); Assert.assertEquals(((B) restored.head()).b, "b"); }