在 Java 8 中将数组转换为具有特定范围的列表

2022-09-04 23:50:13

我想将一个字符串数组转换为具有特定范围的列表。在我的情况下,我总是希望从索引1到最后一个索引。我不需要列表中包含索引 0 值。是否有任何直接方法可用于根据需要过滤和转换为列表?

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);
    }
}

答案 1

您还可以使用重载方法 Arrays.stream(T[] array, int startInclusive, int endExclusive) 作为:

List<String> list = Arrays.stream(optArr, 1, optArr.length)
                          .collect(Collectors.toList());

返回一个顺序 Stream,其中指定数组的指定范围作为其源


或者(非Java-8),使用subList是一个选项,但我更喜欢将其链接在一行中,而不是创建一个新对象::

List<String> list = Arrays.asList(optArr).subList(1, optArr.length);

答案 2

您可以使用 Stream.skip()

List<String> list = Arrays.stream(optArr).skip(1).collect(Collectors.toList());

推荐