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());
}
}
优点:
链式编程的优势在于:
-
代码更加简洁易读
-
操作步骤清晰可见
-
减少了临时变量的使用
-
支持流畅的操作序列
注意:在链式操作中,每个方法通常都返回一个对象(通常是当前对象或新对象),这样才能继续调用下一个方法。
