java里对list的操作,我们一遍使用for遍历,输出或改变里面的内容。单经常在代码里面我们发现,也可以使用这样的代码结构
daPaymentActionVo.setApnolist(paymentActionVo.getApnolist().stream().map(PaymentActionVo.Voucher::getApno).collect(Collectors.toList()));
daPaymentActionVo.setApnolist(paymentActionVo.getApnolist().stream().map(PaymentActionVo.Voucher::getApno).collect(Collectors.toList()));
这是链式编程
在 Java 中,可以使用链式编程(Fluent Interface)风格来操作 List,使代码更加简洁和易读。以下是几种常见的链式编程方式:
Java 8 Stream API 链式操作
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()); // 收集为ListSystem.out.println(result); // 输出: [ALICE, CHARLIE, DAVID]}
}
使用第三方库如 Guava 的链式构建
import com.google.common.collect.ImmutableList;
import java.util.List;public class GuavaChainExample {public static void main(String[] args) {// 使用Guava构建不可变ListList<String> colors = ImmutableList.<String>builder().add("Red").add("Green").add("Blue").build();System.out.println(colors); // 输出: [Red, Green, Blue]}
}
集合工具类的链式操作
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());}
}
优点:
链式编程的优势在于:
代码更加简洁易读
操作步骤清晰可见
减少了临时变量的使用
支持流畅的操作序列
注意:在链式操作中,每个方法通常都返回一个对象(通常是当前对象或新对象),这样才能继续调用下一个方法。