使用Java流从列表中获取第n个元素

我有一个字符串列表,如“/ 100”“/ 100/200”.
我希望用/分割这些字符串,然后得到一个整数列表列表,如[[100],[100,200]].
我想遍历这个列表列表,如果该列表足够长,则从每个列表中获取第n个元素,否则移动到下一个列表.

众所周知,每个内部列表的长度n最大.

示例:

n= 3
slashString -> "/100/200/300","/200/300","/100/200/400"

在上面的例子中,我想要一个整数列表为300,400.

List<Integer> output = slashString.stream()
        .map(x->Arrays.stream(x.split("/")).collect(Collectors.toList()))
        .filter(x->x.size()==3)

我能够思考到上面.我最终如何在所有整数列表中收集第3个元素.

解决方法

只需将每个List映射到List的第3个元素并收集:
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());

请注意,您必须消除输入字符串的前导/.否则,第1和第3列表的长度将为4,并且它们将不会通过过滤器.或者您可以要求列表大小为4而不是3(并将l.get(2)更改为l.get(3)).

相关文章

ArrayList简介:ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增...
一、进程与线程 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程...
本文为博客园作者所写:&#160;一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 简单的一个类...
#############java面向对象详解#############1、面向对象基本概念2、类与对象3、类和对象的定义格式4、...
一、什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域...
Collection接口 Collection接口 Collection接口 Collection是最基本的集合接口,一个Collection代表一组...