您的位置:

Stream截取List

Stream是JDK 8中的一项新特性,它可以优雅地处理集合和数组中的数据,它的开发者想象力丰富,为我们的编程带来了很多惊喜。Stream API提供了很多有用的操作方法,其中就包括可以截取List的功能,并提供了非常丰富的用法。本文将对stream截取list进行多方面的阐述。

一、从stream截取List中每个字符串

List list = 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个元素

List list = 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取集合中的最大值

List list = Arrays.asList(1, 2, 3, 4, 5, 6);
Optional
    max = list.stream().max(Integer::compare);

   
  

通过使用max()方法,我们可以找到集合中的最大值。在上述代码中,我们定义了一个List,然后使用Integer类的compare()方法作为参数,找到了最大值,并将其赋值给了一个Optional对象。

四、Stream截取数据

List list = 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获取最大值

List list = Arrays.asList(1, 2, 3, 4, 5, 6);
int maxValue = list.stream().max(Integer::compare).get();

  

我们通过上述代码来获取List中的最大值。我们使用max()方法,找到最大值,并将其赋值给了一个Optional对象。但是,这个时候它还没有被强制转换成int类型。我们调用了Optional对象的get()方法,将其转换成int类型,并将其赋值给了一个变量。

六、Stream截取字符串

List list = 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个对象

List list = 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的使用越来越广泛,我们相信你也可以更快、更方便地处理集合和数组中的数据。