使用Map <string,map <string,=“”long =“”>&gt;写文件的问题

时间:2016-03-01 20:18:06

标签: java string file hash hashmap

我的数据结构格式为Map<String, Map<String, Long>> map

1987 {abacate=1, catuaba, lion=3, coco=1, asas=2} 2005 {Polymer Science=3} 1234 {Environmental Studies=1}

每个是我的Hash的关键,每对word=number对应一个早期的操作,我计算了这个单词的出现(用逗号分隔的是一个单词)术语)。

我正在尝试遍历此哈希,因此我可以将每个word=number对用分隔符分隔,但由于这种结构,我的结果不是很一致。

当我使用简单的Map<String, List<String>>时,我可以迭代并恢复所有的键和值而没有任何问题。使用map.forEach()我能够做到这一点

map.forEach((name, lines) -> {
    try {
        Files.write(Paths.get(PATH), lines);`
    } catch (IOException e) {
        e.getStackTrace();
    }
});

但现在在这种结构中我遇到了麻烦。有没有人有一个很好的方法来完成这个结构(Map<String, Map<String, Long>>)所以我可以使用分隔符来编写它?

2 个答案:

答案 0 :(得分:1)

您可能只想在没有lambdas的情况下迭代地图,以了解您想要做什么。

<ion-view view-title="Sign Up" >
<ion-content class="padding">
    <div class="list">
        <label class="item item-input item-floating-label">
            <span class="input-label">First Name</span>
            <input type="text" placeholder="First Name">
        </label>
        <label class="item item-input item-floating-label">
            <span class="input-label">Last Name</span>
            <input type="text" placeholder="Last Name">
        </label>
        <label class="item item-input item-floating-label">
            <span class="input-label">Email</span>
            <input type="text" placeholder="Email">
        </label>
        <label class="item item-input item-floating-label">
            <span class="input-label">Password</span>
            <input type="text" placeholder="password">
        </label>

        <button class="button button-block button-positive"ng-click="insert('averyto8@vt.edu')">
            Sign-Up
        </button>
</div>
</ion-content>
</ion-view>

答案 1 :(得分:0)

@Chill回复的小变化(所有积分给他)

for (Entry<String, Map<String, Long>> mapEntry : props.entrySet()) {
            String mapKey = mapEntry.getKey();
            Map<String, Long> submap = mapEntry.getValue();
            for (Entry<String, Long> submapEntry : submap.entrySet()) {
                String submapKey = submapEntry.getKey();
                Long submapList = submapEntry.getValue();

                System.out.println(mapKey + "\t" + submapKey + "\t" + submapList);
                //TODO: do whatever you want with these items.
            }
        }

我的数据位于Map <String, Map<String, Long>>,因此我对其代码进行了一些修改。