在这篇技术文档中,我们将讨论如何使用 Java 8 的 Stream API 来获取一个 member_sn 集合。通过以下步骤,可以从给定的数据集合中提取 unique member_sn 值并存储在一个 List 中。
步骤
首先,确保已经导入了所需的类和包,例如 List、Stream 和 Collectors。
-
创建一个名为 rows 的数据集合,该集合包含元素,每个元素都有 action_member_sn 和 member_sn 属性。
-
使用 Stream API 对 rows 进行流操作,以便在每个元素上执行后续操作。
-
在流操作中使用 map() 方法,将每个元素转换为包含 action_member_sn 和 member_sn 值的列表。
List<String> member_sn_list = rows.stream() .map(vo -> Stream.of(vo.getAction_member_sn(), vo.getMember_sn()) .collect(Collectors.toList()))
- 使用 flatMap() 方法将列表中的多个列表扁平化为一个单一的 Stream。
.flatMap(Collection::stream)
- 使用 distinct() 方法过滤重复的元素。
.distinct()
- 最后,使用 collect() 方法将结果收集到一个新的 List 中。
.collect(Collectors.toList());
示例代码
import java.util.Collection; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class Main { public static void main(String[] args) { // 创建一个示例数据集合 List<DataVO> rows = new ArrayList<>(); rows.add(new DataVO("member1", "action_member1")); rows.add(new DataVO("member2", "action_member2")); rows.add(new DataVO("member3", "action_member1")); rows.add(new DataVO("member4", "action_member3")); rows.add(new DataVO("member3", "action_member2")); // 获取 member_sn 集合 List<String> member_sn_list = rows.stream() .map(vo -> Stream.of(vo.getAction_member_sn(), vo.getMember_sn()) .collect(Collectors.toList())) .flatMap(Collection::stream) .distinct() .collect(Collectors.toList()); // 打印结果 System.out.println(member_sn_list); } static class DataVO { private String member_sn; private String action_member_sn; public DataVO(String member_sn, String action_member_sn) { this.member_sn = member_sn; this.action_member_sn = action_member_sn; } public String getMember_sn() { return member_sn; } public String getAction_member_sn() { return action_member_sn; } } }
这是一个简单的示例代码,可以根据自己的需求进行修改和扩展。根据输入的数据集合,上述代码将返回一个包含 unique member_sn 值的列表。
希望这篇技术文档对你有所帮助!如果你还有任何问题,请随时提问。