摩尔斯电码翻译

时间:2013-03-30 07:58:39

标签: java arraylist

如果我按顺序有一个包含从A到Z的莫尔斯代码字母的ArrayList,并且按顺序包含从A到Z的常规字母表的ArrayList,那么获取用户输入并通过使用这些来转换它的最佳方式是什么两个ArrayLists?

3 个答案:

答案 0 :(得分:2)

创建Map<MorseCode, Character>,迭代用户输入的莫尔斯码,并为每个莫尔斯码获取地图中的相关角色。如果要转换到其他方向,请使用Map<Character, MorseCode>

答案 1 :(得分:1)

为什么不使用带有morseCode的HashMap<String,String>作为密钥,将翻译作为值? 然后你可以使用`map.get(key)?并且它直接返回翻译而没有巨大的性能成本。

访问Map的成本是O(1)。找到List的翻译有O(n)。

答案 2 :(得分:1)

地图在这里是最佳选择,但如果您必须使用列表,则可以使用indexOf(E element)方法。如果列表不包含元素,它将返回元素的索引或-1。然后,您可以使用get(int index)在指定位置获取元素。

所以类似的东西应该为letter-&gt; morseCode

做诀窍
int index = letterList.indexOf(yourCharacter);
if (index >= 0)
    morse = morseCodeList.get(index);

或反转它以找到莫尔斯 - >字母。