java里List链式编程

java里对list的操作,我们一遍使用for遍历,输出或改变里面的内容。单经常在代码里面我们发现,也可以使用这样的代码结构

daPaymentActionVo.setApnolist(paymentActionVo.getApnolist().stream().map(PaymentActionVo.Voucher::getApno).collect(Collectors.toList()));

java 复制代码
 daPaymentActionVo.setApnolist(paymentActionVo.getApnolist().stream().map(PaymentActionVo.Voucher::getApno).collect(Collectors.toList()));

这是链式编程

在 Java 中,可以使用链式编程(Fluent Interface)风格来操作 List,使代码更加简洁和易读。以下是几种常见的链式编程方式:

Java 8 Stream API 链式操作

java 复制代码
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class ListChainExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eve");
        
        // 链式操作示例
        List<String> result = names.stream()
                .filter(name -> name.length() > 3)  // 过滤长度大于3的名字
                .map(String::toUpperCase)          // 转换为大写
                .sorted()                          // 排序
                .collect(Collectors.toList());     // 收集为List
        
        System.out.println(result);  // 输出: [ALICE, CHARLIE, DAVID]
    }
}

使用第三方库如 Guava 的链式构建

java 复制代码
import com.google.common.collect.ImmutableList;
import java.util.List;

public class GuavaChainExample {
    public static void main(String[] args) {
        // 使用Guava构建不可变List
        List<String> colors = ImmutableList.<String>builder()
                .add("Red")
                .add("Green")
                .add("Blue")
                .build();
        
        System.out.println(colors);  // 输出: [Red, Green, Blue]
    }
}

集合工具类的链式操作

java 复制代码
import java.util.*;
import java.util.stream.Collectors;

public class CollectionUtilsExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6);
        
        // 链式操作
        List<String> processed = numbers.stream()
                .filter(n -> n % 2 == 0)
                .map(n -> "Number: " + n)
                .peek(System.out::println)  // 输出: Number: 2, Number: 4, Number: 6
                .collect(Collectors.toList());
    }
}

优点:

链式编程的优势在于:

  • 代码更加简洁易读

  • 操作步骤清晰可见

  • 减少了临时变量的使用

  • 支持流畅的操作序列

注意:在链式操作中,每个方法通常都返回一个对象(通常是当前对象或新对象),这样才能继续调用下一个方法。