Get the first n elements of a List into an Array (#14599)
* Get the first n elements of a List into an Array * [first-n-to-array] rename N -> n
This commit is contained in:
parent
16080930fa
commit
98d959f33a
|
@ -0,0 +1,56 @@
|
|||
package com.baeldung.arrayconversion;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
public class ListToArrayFirstNElementsUnitTest {
|
||||
private static final List<String> INPUT_LIST = Lists.newArrayList("one", "two", "three", "four", "five", "six", "seven");
|
||||
private static final int n = 5;
|
||||
|
||||
@Test
|
||||
void whenUsingForLoop_thenGetExpectedArray() {
|
||||
String[] result = new String[n];
|
||||
for (int i = 0; i < n; i++) {
|
||||
result[i] = INPUT_LIST.get(i);
|
||||
}
|
||||
assertArrayEquals(new String[] { "one", "two", "three", "four", "five" }, result);
|
||||
|
||||
String[] result2 = new String[n];
|
||||
Iterator<String> iterator = INPUT_LIST.iterator();
|
||||
for (int i = 0; i < n && iterator.hasNext(); i++) {
|
||||
result2[i] = iterator.next();
|
||||
}
|
||||
assertArrayEquals(new String[] { "one", "two", "three", "four", "five" }, result2);
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenUsingSubList_thenGetExpectedArray() {
|
||||
String[] result = new String[n];
|
||||
INPUT_LIST.subList(0, n)
|
||||
.toArray(result);
|
||||
assertArrayEquals(new String[] { "one", "two", "three", "four", "five" }, result);
|
||||
|
||||
String[] result2 = INPUT_LIST.subList(0, n)
|
||||
.toArray(new String[0]);
|
||||
assertArrayEquals(new String[] { "one", "two", "three", "four", "five" }, result2);
|
||||
|
||||
// available only for java 11+
|
||||
String[] result3 = INPUT_LIST.subList(0, n)
|
||||
.toArray(String[]::new);
|
||||
assertArrayEquals(new String[] { "one", "two", "three", "four", "five" }, result3);
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenUsingStream_thenGetExpectedArray() {
|
||||
String[] result = INPUT_LIST.stream()
|
||||
.limit(n)
|
||||
.toArray(String[]::new);
|
||||
assertArrayEquals(new String[] { "one", "two", "three", "four", "five" }, result);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue