使用 java 存储聊天消息对象的最佳集合是什么?

问题描述

我想将聊天消息存储在 arraylist 集合中,但我听说这是一种不好的做法,因为存储在内存中的 arraylist 的方式意味着每次向 arraylist 添加消息时,它都会重新创建一个新消息并发送旧的arraylist 到垃圾收集?那么做这项工作的最佳收藏是什么?任何人都可以有一个很好的来源来了解内存收集如何存储在内存中?

解决方法

存储在内存中的arraylist意味着每次向arraylist添加消息时,它都会重新创建一个新的并将旧的arraylist发送到垃圾收集

不正确。每次将元素添加到 action 时,该过程不会发生。

只有当您将内部数组填充到其容量时才会发生该过程。达到限制后,将创建一个新的更大的数组,并复制旧内容。

此外,发送到垃圾收集的不是 ArrayListArrayList 在内部管理新旧数组。内部管理的旧数组进入垃圾收集。

您可以通过明智地设置 ArrayList 的初始容量来避免或最小化此数组替换过程。如果您知道需要少于一千个元素,请将初始容量设置为该限制:

ArrayList

正如其他人评论的那样,您没有提供足够的要求来推荐存储聊天消息的策略。您需要解释大小、数量、流失、持久性、并发性等。