0

如果我有一个包含按顺序从 A 到 Z 的摩尔斯电码字母的 ArrayList 和一个按顺序包含从 A 到 Z 的常规字母的 ArrayList,那么使用这两个 ArrayLists 获取用户输入并翻译它的最佳方法是什么?

4

3 回答 3

2

创建一个Map<MorseCode, Character>,遍历用户输入的莫尔斯电码,并为每个莫尔斯电码,获取地图中的关联字符。如果您想转换到另一个方向,请使用Map<Character, MorseCode>.

于 2013-03-30T08:02:09.877 回答
1

为什么不使用HashMap<String,String>带有莫尔斯电码的 a 作为键,将翻译作为值?然后你可以使用`map.get(key)? 它直接返回翻译,没有巨大的性能成本。

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

于 2013-03-30T08:02:18.490 回答
1

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

所以像这样的东西应该可以解决 letter->morseCode

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

或反转它以找到 morse->letter。

于 2013-03-30T08:10:43.200 回答