java 实现 两个表的join拼成一个list

 
java 实现 两个表的join拼成一个list

在Java中,可以使用Java 8的Stream API来实现两个表的Join操作并拼成一个List。以下是一个简单的例子,演示如何将两个表的数据根据某个共同字段进行Join,并将结果存入List中。

假设我们有两个简单的类,分别表示两个数据库表的一行: 

class TableA {
int id;
String name;
 
// Constructors, getters, and setters
}
 
class TableB {
int id;
String info;
 
// Constructors, getters, and setters
}

现在我们有两个List分别代表两个表: 

List<TableA> tableAList = Arrays.asList(
new TableA(1, "Alice"),
new TableA(2, "Bob")
);
 
List<TableB> tableBList = Arrays.asList(
new TableB(1, "Info1"),
new TableB(2, "Info2")
);

使用Java 8的Stream API,我们可以这样做Join操作并生成一个新的List: 

List<Pair<TableA, TableB>> joinedList = tableAList.stream()
.flatMap(a -> tableBList.stream()
.filter(b -> a.getId() == b.getId())
.map(b -> new Pair<>(a, b)))
.collect(Collectors.toList());

在这个例子中,我们假设两个表通过id字段进行Join。flatMap用于将每个TableA元素与所有符合条件的TableB元素配对,filter用于选择具有相同id的记录,然后使用map创建一个新的Pair对象。最后,我们使用collect方法将所有配对收集到一个List中。

如果你的环境不允许使用Java 8的Stream API,你可以使用传统的for循环来完成这个操作。

posted @   一木人生  阅读(96)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示