HashMap映射值略有偏差

时间:2014-04-10 00:37:55

标签: java arrays hashmap

ArrayLists

This is jumblesOrdered: [act, aprt, art, dgo, fgor, opst]

This is jumbles: [arpt, atc, atr, gdo, grof, otsp]

输出:

This is jumbleWordHM: {opst=otsp, art=atr, fgor=grof, dgo=gdo, aprt=atc, act=arpt}

HashMap代码:

        for (int i = 0; i < jumblesOrdered.size(); i++) {
        String word = jumbles.get(i);
        String sortedWord = jumblesOrdered.get(i);

        if (jumbleWordHM.get(sortedWord) == null) {
            jumbleWordHM.put(sortedWord, word);
        } else {
            jumbleWordHM.put(sortedWord, jumbleWordHM.get(sortedWord) + " "
                    + word);
        }

    }

jumbleWordHM的输出略有偏差。输出应为:

    This is jumbleWordHM: {opst=otsp, art=atr, fgor=grof, dgo=gdo, ****aprt=arpt, ****act=atc}

* *表示需要切换的内容。

1 个答案:

答案 0 :(得分:1)

您的第一个ArrayList以:

开头
  • [act,aprt,...

您的第二个ArrayList以:

开头
  • [arpt,atc,...

您按顺序获取元素,因此它将使用第一个列表的第一个元素作为键,第二个列表的第一个元素作为值使用您的方式&# 39;把它们放在地图上。

如果您不能保证订单,则需要添加代码才能找到包含相同字母的字符串。