使用Java流获取嵌套列表的每n个元素
这里有一个函数,它将接受嵌套的ArrayList使用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
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
});