I want to convert one string array to list with specific range. In my case I always want from index 1 to last index. I don't need the index 0 value included in the list. Is there any direct method that I can use to filter and convert to the list as I need ?
public class test1 {
public static void main(String[] args) {
String[] optArr = {"start", "map1", "map2", "map3"};
List<String> list = Arrays.stream(optArr).collect(Collectors.toList());
System.out.println(list);
}
}
You can use Stream.skip()
:
List<String> list = Arrays.stream(optArr).skip(1).collect(Collectors.toList());
You can also use the overloaded method Arrays.stream(T[] array, int startInclusive, int endExclusive)
as :
List<String> list = Arrays.stream(optArr, 1, optArr.length)
.collect(Collectors.toList());
Returns a sequential Stream with the specified range of the specified array as its source.
Alternatively(non Java-8), using the subList
is an option, but I would prefer chaining it in one-line instead of creating a new object as:
List<String> list = Arrays.asList(optArr).subList(1, optArr.length);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With