I have an List of Messages objects. My message object consist of sender and CaseNumber. A SQL query is pulls all the messages into a list. In this list I have multiple of the same CaseNumber.
What I would like to accomplish is loop though the current Messages List and split them out into their own individual list based on the CaseNumber.

我已经try 过了,但我不确定如何在for循环中实现这一点.

    public class Messages {
    private String sender = "";
    private int caseNumber = 0

     public int getCaseNumber() {
    return caseNumber;
}
    public void setCaseNumber(int caseNumber) {
        this.caseNumber = caseNumber;
    }

    public String getSender() {
      return sender;
    }
    public void setSender(String sender) {
    this.sender = sender;
    }
    
   }

SQL makes a call and maps the vars into a huge object.
  public List<Messages> getAllMessages()
  {
   List<Messages> entries = null;
   String sql = "select sender, caseNumber from Messages";
   entries = jdbcTemplate.query(sql, new MessagesMapper());
   return entries;
  }

//for loop in my function.
for(Messages m : allMessages)
{
    //This is the part i am stumped on how to I check if case number = case number if so create a new Messages List. Then if any of the additional cases in the list, add them to this new List.  If it's a new caseNumber, create a new list.
}

我曾想过更改SQL调用,只是为了按CaseNumber拉取每个消息,但我觉得我可能只是在敲打SQL,这感觉效率不高.

令人希望的是,这对我想要实现的目标是有意义的.根据CaseNumber拆分对象列表,并创建它自己对象列表.

推荐答案

您可以使用Java Stream api对列表进行分组.

Map<Integer, List<Message>> groupedMessages = allMessages.stream().collect(Collectors.groupingBy(Message::getCaseNumber));

Java相关问答推荐

收听RDX中用户数据的变化

更新我们的一个文物后出现了严重的符号引用错误

我的scala文件失败了Scala.g4 ANTLR语法

Java模式匹配记录

无法传递消费者<;>;实例

为什么Java的代码工作(if condition内部的实例)

如何获得执行人?

Java编译器抛出可能未正确初始化的错误?

Kotlin内联互操作:强制装箱

Java流传输一个列表并创建单个对象

如何在Spring Java中从数据库列中获取JSON中的具体数据

如何在 spring 数据的MongoDB派生查询方法中使用$EXISTS

如何用内置Java从JavaFX应用程序中生成.exe文件?

从映射列表中检索所有键

Spring Validator批注不起作用

在单例类上获取Java锁,了解原因

如何修复Spring Boot应用程序中的RestDocumentationGenerationException:java.io.FileNotFoundException:/curl-request.adoc(只读文件系统)?

如何在特定关键字后提取与模式匹配的多个值?

在不带instanceof或switch的java中记录模式

Vaadin Flow:设置密码显示按钮属性