Разделите сообщение (хранящееся в картах) на куски в java

У меня есть код java для создания нового сообщения.

public boolean createNewMessage(Message m){
    if(decider.newMessage(m)){
        makeRoomForNewMessage(m.getSize());
        if(m.getSize()> 1024){
            //i need a code here
        }

        m.setTtl(this.msgTtl);
        addToMessages(m, true); 
        findConnectionsForNewMessage(m, getHost());
        return true;
    }

    return false;
}

Я хочу поставить условие, что если размер сообщения больше 1024, i.e 1MB, который разделяет сообщение на куски и каждый размер куска меньше 1024.

Также фрагменты имеют ссылку на исходное сообщение. Например, у меня есть сообщение M1размером 1910. Я хочу код, который разделит это сообщение на куски куски ссылаются как M11=1024(первый кусок M1) и M12=886. (Второй кусок M1).

Любой подход к структуре данных, который может выполнять вышеуказанные функции?

2 ответа

  1. Можно создать класс DividedString такого рода

    public class DividedString{
        private final String text;
        private final String[] dividedText;
    
        public DividedString (String text){
            this.text = text;
            // code where you split the text using substring, maybe
        }
    
        public String getChunk(int i){
            return dividedText[i];
        }
    
        // getter, setter, 
    
    }
    
  2. Создайте такую карту

    Map<String, List<String>> messageChunks = new Hashmap<>();
    

    где первая строка-это фактическое сообщение, а список строк содержит фрагменты сообщения в упорядоченной последовательности

    Надеюсь, это поможет.