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 @ 2024-08-06 14:21  一木人生  阅读(309)  评论(0)    收藏  举报