rai*_*zsh 6 java java-8 java-stream
我有一个字符串列表,如"/100" "/100/200".我想通过分割这些字符串/,然后得到一个整数列表列表,如[[100],[100,200]].我想遍历这个列表列表,如果该列表足够长,则从每个列表中获取第n个元素,否则移动到下一个列表.
众所周知,每个内部列表的长度最大n.
示例:
n= 3
slashString -> "/100/200/300","/200/300","/100/200/400"
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,我想要一个整数列表300,400.
List<Integer> output = slashString.stream()
.map(x->Arrays.stream(x.split("/")).collect(Collectors.toList()))
.filter(x->x.size()==3)
Run Code Online (Sandbox Code Playgroud)
我能够思考到上面.我最终如何在所有整数列表中收集第3个元素.
只需将每个映射List到 的第三个元素List并收集:
List<Integer> list = Stream.of ("100/200/300","200/300","100/200/400")
.map(x->Arrays.stream(x.split("/")).collect(Collectors.toList()))
.filter(x->x.size()==3)
.map(l->Integer.valueOf (l.get(2)))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
请注意,您必须消除/输入的前导String。否则第 1 个和第 3 个的长度List将为 4,并且它们不会通过过滤器。或者您可以要求List大小为 4 而不是 3(并更改l.get(2)为l.get(3))。
| 归档时间: |
|
| 查看次数: |
1088 次 |
| 最近记录: |