使用Java流获取嵌套列表的每n个元素

使用Java流获取嵌套列表的每n个元素,java,java-stream,Java,Java Stream,这里有一个函数,它将接受嵌套的ArrayListalllist、索引nth,并返回每个子列表的第n个元素 例如,对于alllist={{1,2,3},{4,5,6},{7,8,9},nth=1,函数将返回{2,5,8} public static String[] getEveryNthElement(ArrayList<ArrayList<String>> allLists, int nth) { String[] nthList = new Strin

这里有一个函数,它将接受嵌套的ArrayList
alllist
、索引
nth
,并返回每个子列表的第n个元素

例如,对于
alllist={{1,2,3},{4,5,6},{7,8,9}
nth=1
,函数将返回
{2,5,8}

public static String[] getEveryNthElement(ArrayList<ArrayList<String>> allLists, int nth) {
        String[] nthList = new String[allLists.size()];
        int n = 0;
        for (ArrayList<String> sList: allLists) {
            if (nth <= sList.size()) {
                nthList[n] = (sList.get(nth));
            }
            n += 1;
        }
        return nthList;
    }
如何将结果收集到数组中?

已解决:

publicstaticstring[]getEverynolution(arraylistalllists,int-nth){
返回allLists.stream()
.map(列表->列表.get(第n个))
.collect(Collectors.toList()
).toArray(新字符串[0]);
}

需要阵列时,无需执行
收集(Collectors.toList())
。只需直接在流上调用
toArray(String[]::new)
返回allLists.stream().map(list->list.get(nth)).toArray(String[]::new)太棒了,谢谢你的提示@Holger
group.stream()
    .forEach(items -> {
        System.out.println(items.get(1));  // prints 2, 5, 8
});