0

我正在尝试建立一个联系人管理器。我想到了一个具有几个属性的数据结构:

  • 它是树状的,这意味着每条信息都可以分成子块(每个节点都有子节点)。例如,一个名为的字段address可能由streettownpostal code等子字段组成。

  • 节点不必是唯一的,例如该email字段的多个节点应该能够彼此相邻共存(在同一级别)

我希望能够使用类似路径的方式探索树,例如通过路径访问节点:address.streetname.first. 访问其密钥多次出现的节点可以像email[2].

所以一棵树可能看起来像:

contact
   ↳ name
        ↳ first      "foo"
        ↳ last       "von bar"
   ↳ email           "foo@bar.com"
   ↳ email           "baz@foo.de"
   ↳ address
           ↳ street  "foostreet 42"
           ↳ town    "barstadt"
           ↳ zip     "04229"
           ↳ country "footopia"
   ↳ address
           ↳ street  "barton alley 11"
           ↳ town    "foostadt"
           ↳ zip     "998877"
           ↳ country "alcabaz"

这是什么树?我尝试过使用 Boost property_tree,但发现很难实现address应该在高级别拆分的事实(Boost 的标准方法会将street, town, ... 节点放在一个中address)。

欢迎任何想法。

4

1 回答 1

0

这是什么树?

这是一棵树;)

您可以使用 JSON 和 Jackson Lib 对树进行建模:

http://www.mkyong.com/java/jackson-tree-model-example/

于 2012-11-01T13:09:27.010 回答