2014-04-10 79 views
0

的的ArrayListHashMap的映射值稍微偏離

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} 

* *表示需要進行切換的。

+0

爲什麼你首先在jumblesOrdered和'arpt'中首先執行'jumbles'操作? – user2357112

+0

jumblesOrdered是每個字母中每個字母的字母順序 – user3287300

+1

'act'不是按照字母順序放置'arpt'的方式。 – user2357112

回答

1

你的第一個ArrayList的開頭:

  • [行爲,APRT,...

你的第二個ArrayList的開頭:

  • [ARPT,ATC,...

您正在按順序獲取元素,所以它是將使用第一個列表的第一個元素作爲關鍵字,將第二個列表的第一個元素作爲值放入地圖中。

如果您不能保證順序,您將需要添加代碼來查找包含相同字母的字符串。