2013-10-01 69 views
0

對不起,問另一個真正明顯的問題分組值和使用Java創建一個HashMap或列表

我有以下字符串:

{ 
status=1, 
msg=1 out of 2 Transactions Fetched Successfully, 
transaction_details= 
    {2298597={mihpayid=403993715508098532, request_id=NULL, bank_ref_num=NULL, amt=53.77, disc=0.00, mode=CC, PG_TYPE=AXIS, card_no=512345XXXXXX2346, name_on_card=emu, udf2=0, addedon=2013-06-03 17:34:42, status=failure, unmappedstatus=failed, Merchant_UTR=NULL, Settled_At=NULL}, 
    6503939={mihpayid=Not Found, status=Not Found} 
    } 
} 

,我想他們組的HashMap或到ArrayListreally don't know what to use如果給交易ids ex:2298597 and 6503939我應該可以得到其他值如status etc

我真的不知道如何去做,所以最終在這裏尋求幫助。

請幫我輸入一些信息,如果可能的話還有樣品代碼。

感謝

編輯

我設法把所有值映射並獲得通過鍵的值,現在我能夠得到像下面這樣的值:

transaction_details is the key 
and Values : {2298597={mihpayid=403993715508098532, request_id=NULL, bank_ref_num=NULL, amt=53.77, disc=0.00, mode=CC, PG_TYPE=AXIS, card_no=512345XXXXXX2346, name_on_card=emu, udf2=0, addedon=2013-06-03 17:34:42, status=failure, unmappedstatus=failed, Merchant_UTR=NULL, Settled_At=NULL}, 6503939={mihpayid=Not Found, status=Not Found}} 

現在我必須根據交易編號進行分組,例如:2298597我該怎麼辦?

+1

看起來像你需要一個解析器爲您的數據格式 –

+1

聽起來像HashMap完美的用例 Antoniossss

+0

這是JSON嗎?如果是這樣,你可以在它周圍加引號並將其加載到對象列表中以供進一步處理。 – EdgeCase

回答

1

創建一個Transactions類。擁有所有的變量和相應的getter和setter。忽略.equals().hashCode()方法。

至於在HashMapList之間做什麼選擇,我建議去HashMap,因爲訪問存儲在HashMap中的數據的複雜度是O(1)。對於列表它是O(N)

+0

+1爲您付出的努力,如果您可以爲我提供一些示例 –

1

至於我,你應該爲你的「字符串」(某種操作響應權?)創建一個datacontainer並將其放入Map其中鍵將是您所需的值(在這裏ids),而map的值只是你的datacontainer對象。

編輯:

Map<String,MagicContainer> myMap=new HashMap<String,MagicContainer>(); 
MagicContainer message=new MagicContainer(message); // where message is lets say your example string 
for(String singleId:message.getTransactionIDs()){ 
    myMap.put(singleId,message); 
} 

//now you can get your message by one of transactions id 
String status=myMap.get("2298597").getStatus(); 

OFC。它是由你來寫裏面MagicContainer類(消息解析和getter方法+制定者重要的價值)

編輯邏輯:

在這種情況下,你在你的編輯指出,簡單地包紮地圖的值到列表如。 HashMap<String,List<MagicContainer>>(),同時添加到地圖中,檢查是否存在相應的密鑰,如果存在,只需將您的消息添加到列表中。否則,用新列表創建新密鑰。

+0

+1,如果您可以爲我提供一些示例,那將是非常好的 –

+0

地圖使用示例,或者我應該爲你寫datacontainer嗎?:) – Antoniossss

+0

請看看我的編輯 –