Stream是JDK 8中的一项新特性,它可以优雅地处理集合和数组中的数据,它的开发者想象力丰富,为我们的编程带来了很多惊喜。Stream API提供了很多有用的操作方法,其中就包括可以截取List的功能,并提供了非常丰富的用法。本文将对stream截取list进行多方面的阐述。
一、从stream截取List中每个字符串
Listlist = Arrays.asList("apple", "banana", "orange", "pear"); List resultList = list.stream().map(String::toUpperCase).collect(Collectors.toList());
在上述代码中,我们运用了map()方法,将List中的所有元素转换为大写字符串,并将它们收集到另外一个List中。在这个过程中,我们对List进行了截取,并且传入了一个lambda表达式作为参数,在lambda表达式中使用了String类的toUpperCase()方法将元素转换为大写字符串。
二、Stream截取List的最后5个元素
Listlist = Arrays.asList("apple", "banana", "orange", "pear"); List resultList = list.stream().skip(list.size()-5).collect(Collectors.toList());
代码中我们遵循了思路,从List中跳过前n个元素,然后从“n”位置开始获取元素,并把这些元素放进另一个List中。这里,我们调用了skip()方法,跳过前面的元素,取得最后5个元素。在List接口中,有一个size()方法,该方法返回List的大小。我们用它来获取总共有多少个元素,并计算出在List中从哪个位置开始只取最后5个元素。
三、Stream取集合中的最大值
Listlist = Arrays.asList(1, 2, 3, 4, 5, 6); Optional max = list.stream().max(Integer::compare);
通过使用max()方法,我们可以找到集合中的最大值。在上述代码中,我们定义了一个List,然后使用Integer类的compare()方法作为参数,找到了最大值,并将其赋值给了一个Optional对象。
四、Stream截取数据
Listlist = Arrays.asList(1, 2, 3, 4, 5, 6); List resultList = list.stream().filter(e -> e > 2).filter(e -> e < 5).collect(Collectors.toList());
在上述代码中,我们使用了filter()方法,过滤了出部分数据作为结果。我们首先使用了一个lambda表达式来找到大于2的数,然后使用了另一个lambda表达式来找到小于5的数,并将这些数字收集到另一个List中。这个时候,我们就得到了List中满足我们条件的元素。
五、Stream获取最大值
Listlist = Arrays.asList(1, 2, 3, 4, 5, 6); int maxValue = list.stream().max(Integer::compare).get();
我们通过上述代码来获取List中的最大值。我们使用max()方法,找到最大值,并将其赋值给了一个Optional对象。但是,这个时候它还没有被强制转换成int类型。我们调用了Optional对象的get()方法,将其转换成int类型,并将其赋值给了一个变量。
六、Stream截取字符串
Listlist = Arrays.asList("apple", "banana", "orange", "pear"); List resultList = list.stream().filter(e -> e.contains("r")).collect(Collectors.toList());
我们可以使用filter()方法来截取字符串。在这个例子中,我们截取了包含’r’的字符串,并将这些字符串放入另一个List中。
七、Stream软件
我们刚才对Stream进行了非常精细的阐述。不过, 如果你感到Stream并不是很好理解并且觉得它太复杂,有一些Stream软件可以方便开发者进行测试等操作的。举例来说,Dzone就提供了一个用于测试Stream中方法的在线Stream测试工具,它可以让你运行一些简单的代码来测试Stream的各种特性。
八、stream取集合第10个对象
Listlist = Arrays.asList(1, 2, 3, 4, 5, 6); Optional result = list.stream().skip(9).findFirst();
我们可以通过使用skip()跳过前面九个元素,然后获取List中的第十个元素。
总结
在本文中,我们从不同的角度阐述了stream截取list,并多次用到了Java 8中的Stream API。通过使用Stream,我们可以优雅地操作各种数据结构。通过本文,我们可以看到,Stream非常适合处理大数据,而且在使用时非常简单、直观和灵活。随着stream的使用越来越广泛,我们相信你也可以更快、更方便地处理集合和数组中的数据。