0

我有一个不错的任务,但不确定这里的优化版本是什么。这是单线程环境。

在 Thunderbird 中,您可以将消息视为树。这将是一个树列表。单击可以从根导航到叶并返回的树元素,可能有其他邮件客户端,但我没有使用其他邮件客户端。这里的任务类似:在树视图中显示消息列表。

Message1
  Message1.1
  Message1.2
     Message1.2.1
Message2
Message3
   Message 3.1

等等……我有一个Vector<Message> myMessages

消息简化的 POJO 将是这样的:

class Message{
      int id;
      int parentID;
      String topic;
      String content;
}

我的问题很简单:应该使用什么数据结构来存储那棵树?一个 LinkedHashMap 与那些mesageid 的键,它是 parentID = null (主题中的第一条消息),值应该是一个包含所有消息的 ArrayList?- 还是嵌套的 LinkedHashMap?

如何存储 Message 1.2.1 以轻松知道他的父母是谁?

更新:它将在 GWT/html 中列出,而不是 Swing

4

2 回答 2

2

您是否考虑过 JTrees和底层的TreeModel?我不清楚您是否要显示您的数据,但无论如何我都会尝试利用这项工作,因为它功能丰富并且看起来很适合您的问题。

更新:当您使用 GWT 时,请查看GWT 树

于 2013-02-19T18:48:11.240 回答
1

¿ 您是否考虑过使用 JAXB?您可以拥有一个 XSD,其中包含您想要的消息结构,它将生成一个 java 类,例如: MessageType 然后您可以为您的消息创建一个数组,您可以从 getter 方法获取子属性。

于 2013-02-19T18:51:28.537 回答