2015-01-08 34 views
1

我正在寻找一种方法来获取两个变量chipNumchannel并将它们映射到另一个变量ComboPinchipNum可以具有值1 - 5和channel可以是0 - 23.根据组合,类似: (1,9) -> (11) (2,10) -> (37) (3,15) -> (66)从2个变量的映射中获得结果

注意chipNum和信道是字符串类型,我想ComboPin到也是String类型的。

我想避免使用一堆if语句条件或case语句。

我已经做了一些研究,并看到哈希映射或map.put(),但我只看到这与一个值映射到另一个。我只是在寻找我可以去做的方向。

生成的(ComboPin)将被放入我的数据库。感谢您的帮助,我可以得到。

+0

这里有两个** BIG **要求。一个用于'ComboPin'在Map中工作,另一个用于读写数据库。你可能想分开这些问题并分别询问。 – markspace

+0

“map”将一个“value”(_key_)映射到另一个,但该键可以是任何对象,包括具有两个专用字段的对象,例如'chipNum'和'channel'。你可以通过定义你自己的拥有这两个值的类来做到这一点。确保在类中重写'equals'和'hashCode'。 – ajb

+0

对于地图,您需要确保您[正确地覆盖'equals()'和'hashCode()'](http://www.ibm.com/developerworks/library/j-jtp05273/)。 – markspace

回答

0

如果我理解你的问题,你需要一个简单的翻译chipNumchannel和ComboPim。是对的吗?

如果是这样,您可以轻松地连接两者。

public String getComboPin(String chipNum, String channel){ 
    return chipNum + ":" + channel; 
} 
public String getChipNum(String comboPin){ 
    return comboPin.split(":")[0]; 
} 
public String getChannel(String comboPin){ 
    return comboPin.split(":")[1]; 
} 

让我知道如果我误解了这个问题。

+0

你有些误解。 'ComboPin'独立于'chipNum'和'channel'。在我的问题中,我展示了映射到'ComboPin'的一些值的三个不同示例。 '(1,9) - >(11)'。 11将是我的ComboPin – KS7X