在Java 8中,skiplimitmapcollect是流(Stream)类的常用方法,用于对集合进行处理和转换。下面我将逐个介绍它们的作用和用法:

  1. skip方法:skip方法用于跳过流中的前N个元素,并返回一个新的流。它接受一个long类型的参数,表示要跳过的元素数量。示例代码如下:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = numbers.stream()
                              .skip(2)
                              .collect(Collectors.toList());
// 输出结果为 [3, 4, 5]

在上述示例中,我们创建了一个整数列表numbers,然后使用stream()方法将其转换为流。接着使用skip(2)方法跳过前两个元素,最后使用collect(Collectors.toList())方法将剩余的元素收集到一个新的列表中。

      2.  limit方法:limit方法用于限制流中元素的数量,并返回一个新的流。它接受一个long类型的参数,表示要保留的元素数量。示例代码如下:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> result = numbers.stream()
                              .limit(3)
                              .collect(Collectors.toList());
// 输出结果为 [1, 2, 3]

在上述示例中,我们创建了一个整数列表numbers,然后使用stream()方法将其转换为流。接着使用limit(3)方法保留前三个元素,最后使用collect(Collectors.toList())方法将这三个元素收集到一个新的列表中。

      3. map方法:map方法用于将流中的每个元素映射到另一个元素,并返回一个新的流。它接受一个Function类型的参数,表示要应用于每个元素的映射函数。示例代码如下:

List<String> names = Arrays.asList("John", "Jane", "Tom");
List<Integer> nameLengths = names.stream()
                                 .map(String::length)
                                 .collect(Collectors.toList());
// 输出结果为 [4, 4, 3]

在上述示例中,我们创建了一个字符串列表names,然后使用stream()方法将其转换为流。接着使用map(String::length)方法将每个字符串映射为其长度,最后使用collect(Collectors.toList())方法将长度收集到一个新的列表中。

       4. collect方法:collect方法用于将流中的元素收集到一个集合或其他数据结构中。它接受一个Collector类型的参数,表示收集操作的具体规则。示例代码如下:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Set<Integer> result = numbers.stream()
                             .collect(Collectors.toSet());
// 输出结果为 [1, 2, 3, 4, 5]

在上述示例中,我们创建了一个整数列表numbers,然后使用stream()方法将其转换为流。接着使用collect(Collectors.toSet())方法将流中的元素收集到一个Set集合中。

 

这些方法在Java 8的流操作中非常常用,它们可以帮助我们对集合进行灵活的处理和转换。除了上述介绍的方法,流还提供了许多其他的操作,如过滤、排序等,可以根据具体需求选择使用。

posted on 2023-07-20 11:30  jarsing  阅读(1286)  评论(0)    收藏  举报