首页 > 解决方案 > java中如何从List中获取id

问题描述

我正在尝试从给定列表中获取 id 并使用它来查找所有用户并按 id 显示它,也许更好的方法是使用流,但我不熟悉流,谁能帮助我

这是下面的代码,

 List<MessageModel> messageModel = messageService.finAll(user.getId());
    UserModel userModel = userRepository.retrieveUserId(messageModel.getId)));
    model.addAttribute("users", userModel);

也许我做错了什么

MessageModel 看起来像

    @Getter
    @Setter
    public class MessageModel {
        private Long id;
        private String text;
        private Long sender_id;
        private User user;
}

最后我解决了这个问题,想并且想向你展示我是怎么做的

   List<MessageModel> messageModel = messageService.finAll(user.getId());
    List<Long> list = new ArrayList<>();
    for (MessageModel messageModel1 : messageModel) {
        Long id = messageModel1.getSender_id();
        list.add(id);
    }
    UserModel userModel = userRepository.retrieveListUserId(list);

也许这不是一个好的解决方案,但它确实有效。

标签: javaspringhibernatethymeleaf

解决方案


如果您至少使用 Java 8,则可以在 Streams 中使用 map 函数。所以它会这样:

List<Long> list = messageModel.stream().map({ model -> model.id }).(Collectors.toList());

推荐阅读