2015-01-08 32 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