我想遍历所有笔记所有用户,然后给他们的行为加权之后,存到data里面,但是data里面每次都只有一个数据,我代码哪里写错了吗?
以下是我的代码:
// 定义一个存储每个笔记和每个用户关系的List
List<Associate> data = new ArrayList<>();
// 计算每篇笔记和每个用户之间的关系指数
for (Notebook notebook : allNotebook) {
int index = 1;//遍历笔记
Integer notebookId = notebook.getId();
for (User user : allUsers) {//遍历用户
Integer userId = user.getId();
//指数设置为1
// 1. 判断该用户有没有收藏该商品,收藏的权重:3
Optional<Collect> collectOptional = allCollects.stream().filter(x -> x.getFid().equals(notebookId) && x.getUserId().equals(userId)).findFirst();
if (collectOptional.isPresent()) {
index += 3;
}
// 2. 判断该用户有没有点赞该商品,点赞权重: 1
Optional<Likes> cartOptional = allLikes.stream().filter(x -> x.getFid().equals(notebookId) && x.getUserId().equals(userId)).findFirst();
if (cartOptional.isPresent()) {
index += 1;
}
// 3. 判断该用户有没有评论过笔记,评论的权重: 1
Optional<Comment> commentOptional = allComments.stream().filter(x -> x.getFid().equals(notebookId) && x.getUserId().equals(userId)).findFirst();
if (commentOptional.isPresent()) {
index += 1;
}
if (index > 1) {
Associate associate = new Associate(userId,notebookId,index);
data.add(associate);
}
}
}