加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java数据结构来模拟数据树

发布时间:2020-12-15 08:36:31 所属栏目:Java 来源:网络整理
导读:我需要帮助定义使用的方法.我有一个SOAP响应给我一个xml文件.我需要最终在屏幕上显示3个相关列表.当您在第一个列表中选择一个项目时,相应的选项将出现在第二个列表等上.我只对如何在从xml流中提取数据后有效组织数据感兴趣.这是一个xml片段: device manufac
我需要帮助定义使用的方法.我有一个SOAP响应给我一个xml文件.我需要最终在屏幕上显示3个相关列表.当您在第一个列表中选择一个项目时,相应的选项将出现在第二个列表等上.我只对如何在从xml流中提取数据后有效组织数据感兴趣.这是一个xml片段:

<device>
    <manufacturer>Acer</manufacturer>
    <model>A1</model>
    <platform>Android</platform>
</device>
<device>
    <manufacturer>Acer</manufacturer>
    <model>A1</model>
    <platform>J2ME</platform>
</device>
<device>
    <manufacturer>Acer</manufacturer>
    <model>A2</model>
    <platform>Android</platform>
</device>
<device>
    <manufacturer>Samsung</manufacturer>
    <model>E400</model>
    <platform>Android</platform>
</device>

所以,我会有像manufacturer = {“Acer”,“Acer”,“Samsung”},model = {“A1”,“A1”,“A2”,“E400”},platform = { “机器人”,“J2ME”,“机器人”,“机器人”}.

有趣的是:我需要按摩数据,以便我可以使用它来显示3个列表.选择Android后,Acer和三星即可上市.如果选择Acer,则可以使用型号A1和A2.所有列表都需要排序.目前我正在使用Sax将数据解析为对象向量,包含制造商,模型,平台字段.我能想到的只是一个类似TreeMap的结构.任何建议,将不胜感激.

解决方法

我认为这里不需要层次结构.因为用户可以选择第一平台或制造商.如果他选择第一个Android,则要显示3个设备.如果他选择第一个宏基,他会看到2个设备.

所以,我的建议如下.

>使用属性制造商,型号,平台创建类设备.
>创建包含所有这些设备的纯链接列表.
>创建2个地图:manufaturerIndex和plarformIndex,如下所示:
Map< String,Collection< Device>> manufacturerIndex;
>在列表上迭代一次并填充所有索引映射.

像这样:

for(Device d : devices) {
    Collection<Device> selected = manufacturerIndex.get(d.getManufacturer());
    if (selected == null) {
         selected = new ArrayList<Device>();
         manufactuerIndex.put(d.getManufacturer(),selected);
    }
    selected.add(d);
    // the same for the second index
}

现在您可以使用数据结构.

manufactuerIndex.get(“诺基亚”) – >返回所有诺基亚设备.

注意这个数据结构是可扩展的.您始终可以根据需要添加任意数量的索引.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读