/** * Alias for {@link Vector#of(Object)} * * @param <T> Component type of element. * @param element An element. * @return A new {@link Vector} instance containing the given element */ public static <T> Vector<T> Vector(T element) { return Vector.of(element); }
/** * Alias for {@link Vector#of(Object)} * * @param <T> Component type of element. * @param element An element. * @return A new {@link Vector} instance containing the given element */ public static <T> IndexedSeq<T> IndexedSeq(T element) { return Vector.of(element); }
/** * Alias for {@link Vector#of(Object...)} * * @param <T> Component type of elements. * @param elements Zero or more elements. * @return A new {@link Vector} instance containing the given elements * @throws NullPointerException if {@code elements} is null */ @SuppressWarnings("varargs") @SafeVarargs public static <T> Vector<T> Vector(T... elements) { return Vector.of(elements); }
/** * Alias for {@link Vector#of(Object...)} * * @param <T> Component type of elements. * @param elements Zero or more elements. * @return A new {@link Vector} instance containing the given elements * @throws NullPointerException if {@code elements} is null */ @SuppressWarnings("varargs") @SafeVarargs public static <T> IndexedSeq<T> IndexedSeq(T... elements) { return Vector.of(elements); } // -- Array
@Override public Vector<T> sorted() { if (isEmpty()) { return this; } else { @SuppressWarnings("unchecked") final T[] list = (T[]) toJavaArray(); Arrays.sort(list); return Vector.of(list); } }
@Override public Vector<Vector<T>> permutations() { if (isEmpty()) { return empty(); } else if (length() == 1) { return of(this); } else { Vector<Vector<T>> results = empty(); for (T t : distinct()) { for (Vector<T> ts : remove(t).permutations()) { results = results.append(of(t).appendAll(ts)); } } return results; } }
static IndexedSeq<CharSeq> apply(CharSeq elements, int k) { if (k == 0) { return Vector.of(CharSeq.empty()); } else { return elements.zipWithIndex().flatMap( t -> apply(elements.drop(t._2 + 1), (k - 1)).map((CharSeq c) -> c.prepend(t._1)) ); } } }
static <T> Vector<Vector<T>> apply(Vector<T> elements, int k) { return (k == 0) ? Vector.of(Vector.empty()) : elements.zipWithIndex().flatMap( t -> apply(elements.drop(t._2 + 1), (k - 1)).map((Vector<T> c) -> c.prepend(t._1))); } }
@Override public IndexedSeq<CharSeq> permutations() { if (isEmpty()) { return Vector.empty(); } else { if (length() == 1) { return Vector.of(this); } else { IndexedSeq<CharSeq> result = Vector.empty(); for (Character t : distinct()) { for (CharSeq ts : remove(t).permutations()) { result = result.append(CharSeq.of(t).appendAll(ts)); } } return result; } } }
/** * Alias for {@link Vector#of(Object)} * * @param <T> Component type of element. * @param element An element. * @return A new {@link Vector} instance containing the given element */ public static <T> IndexedSeq<T> IndexedSeq(T element) { return Vector.of(element); }
/** * Alias for {@link Vector#of(Object)} * * @param <T> Component type of element. * @param element An element. * @return A new {@link Vector} instance containing the given element */ public static <T> Vector<T> Vector(T element) { return Vector.of(element); }
/** * DataColumn constructor. * * @param type Stores the type of data stored in this column. * @param columnName The column name. * @param data The data items stored in the column. */ public DataColumn(Class<T> type, String columnName, T[] data) { this(type, columnName, Vector.of(data)); }
@Override public Vector<T> sorted() { if (isEmpty()) { return this; } else { @SuppressWarnings("unchecked") final T[] list = (T[]) toJavaArray(); Arrays.sort(list); return Vector.of(list); } }
static IndexedSeq<CharSeq> apply(CharSeq elements, int k) { if (k == 0) { return Vector.of(CharSeq.empty()); } else { return elements.zipWithIndex().flatMap( t -> apply(elements.drop(t._2 + 1), (k - 1)).map((CharSeq c) -> c.prepend(t._1)) ); } } }
static <T> Vector<Vector<T>> apply(Vector<T> elements, int k) { return (k == 0) ? Vector.of(Vector.empty()) : elements.zipWithIndex().flatMap( t -> apply(elements.drop(t._2 + 1), (k - 1)).map((Vector<T> c) -> c.prepend(t._1))); } }
@Test public void testVectorOfString() throws Exception { String src0 = "A"; String src1 = "B"; String src2 = "C"; Vector<String> src = Vector.of(src0, src1, src2); String json = MAPPER.writeValueAsString(new ParameterizedVectorPojo<>(src)); Assert.assertEquals(json, "{\"value\":[\"A\",\"B\",\"C\"]}"); ParameterizedVectorPojo<java.lang.String> restored = MAPPER.readValue(json, new TypeReference<ParameterizedVectorPojo<java.lang.String>>(){}); Assert.assertEquals(src, restored.getValue()); }
@Test public void testVectorOfString() throws Exception { String src0 = "A"; String src1 = "B"; String src2 = "C"; Vector<String> src = Vector.of(src0, src1, src2); String json = MAPPER.writeValueAsString(new VectorOfString().setValue(src)); Assert.assertEquals(json, "{\"value\":[\"A\",\"B\",\"C\"]}"); VectorOfString restored = MAPPER.readValue(json, VectorOfString.class); Assert.assertEquals(src, restored.getValue()); }
@Test public void testVectorOfTuple() throws Exception { String src00 = "A"; String src01 = "B"; Tuple2<String, String> src0 = Tuple.of(src00, src01); Vector<Tuple2<String, String>> src = Vector.of(src0); String json = MAPPER.writeValueAsString(new ParameterizedVectorPojo<>(src)); Assert.assertEquals(json, "{\"value\":[[\"A\",\"B\"]]}"); ParameterizedVectorPojo<io.vavr.Tuple2<java.lang.String, java.lang.String>> restored = MAPPER.readValue(json, new TypeReference<ParameterizedVectorPojo<io.vavr.Tuple2<java.lang.String, java.lang.String>>>(){}); Assert.assertEquals(src, restored.getValue()); }
@Test public void testVector() throws Exception { Vector<I> src = Vector.of(new A(), new B()); String json = MAPPER.writeValueAsString(new VectorPojo().setValue(src)); Assert.assertEquals(json, "{\"value\":[{\"type\":\"a\"},{\"type\":\"b\"}]}"); VectorPojo pojo = MAPPER.readValue(json, VectorPojo.class); Vector<I> restored = pojo.getValue(); Assert.assertTrue(restored.get(0) instanceof A); Assert.assertTrue(restored.get(1) instanceof B); }
@Test public void testVector() throws Exception { Vector<A> src = Vector.of(new B("a", "b")); String json = MAPPER.writeValueAsString(new VectorPojo().setValue(src)); Assert.assertEquals(json, "{\"value\":[{\"ExtFieldsPojoTest$B\":{\"a\":\"a\",\"b\":\"b\"}}]}"); VectorPojo pojo = MAPPER.readValue(json, VectorPojo.class); Vector<A> restored = pojo.getValue(); Assert.assertTrue(restored.get(0) instanceof B); Assert.assertEquals(restored.get(0).a, "a"); Assert.assertEquals(((B) restored.get(0)).b, "b"); }