/** * Fills the sequence with values of the given iterable. * * @param values the values to fill this sequence. * @return {@code this} sequence. */ public default MSeq<T> setAll(final Iterable<? extends T> values) { setAll(values.iterator()); return this; }
@Test(dataProvider = "sequences") public void setAllIterator(final MSeq<Integer> seq) { final long seed = random.seed(); final Random random = new Random(seed); final Integer[] array = new Integer[seq.length()]; for (int i = 0; i < array.length; ++i) { array[i] = random.nextInt(); } seq.setAll(Arrays.asList(array).iterator()); random.setSeed(seed); for (int i = 0; i < seq.length(); ++i) { Assert.assertEquals(seq.get(i).intValue(), random.nextInt()); } }
@Test(dataProvider = "sequences") public void setAllIterable(final MSeq<Integer> seq) { final long seed = random.seed(); final Random random = new Random(seed); final Integer[] array = new Integer[seq.length()]; for (int i = 0; i < array.length; ++i) { array[i] = random.nextInt(); } seq.setAll(Arrays.asList(array)); random.setSeed(seed); for (int i = 0; i < seq.length(); ++i) { Assert.assertEquals(seq.get(i).intValue(), random.nextInt()); } }
@Test(dataProvider = "sequences") public void setAllArray(final MSeq<Integer> seq) { final long seed = random.seed(); final Random random = new Random(seed); final Integer[] array = new Integer[seq.length()]; for (int i = 0; i < array.length; ++i) { array[i] = random.nextInt(); } seq.setAll(array); random.setSeed(seed); for (int i = 0; i < seq.length(); ++i) { Assert.assertEquals(seq.get(i).intValue(), random.nextInt()); } }
/** * Create a new {@code MSeq} from the values of the given {@code Seq}. * * @param <T> the element type * @param values the array values. * @return an new {@code MSeq} with the given values * @throws NullPointerException if the {@code values} array is {@code null}. */ @SuppressWarnings("unchecked") public static <T> MSeq<T> of(final Seq<? extends T> values) { final MSeq<T> result; if (values instanceof MSeq) { result = ((MSeq<T>)values).copy(); } else if (values instanceof ISeq) { result = ((ISeq<T>)values).copy(); } else { result = MSeq.<T>ofLength(values.length()).setAll(values); } return result; }
mseq = collection.isEmpty() ? empty() : MSeq.<T>ofLength(collection.size()).setAll(values); } else { final Stream.Builder<T> builder = Stream.builder();